tencent-map
4 findings (1 critical, 2 high, 1 medium), mainly data exfiltration, command injection, resource abuse. Most recent scan 2026-02-01.
This Tencent Maps API integration skill presents CRITICAL and HIGH severity security risks. The primary concerns are: (1) Command injection vulnerabilities due to unvalidated user input in URL construction, (2) Unrestricted external API calls that could be abused for data exfiltration, (3) API key exposure risks, and (4) Unsafe processing of external API responses. While the skill's stated purpose (map API integration) is legitimate, the implementation lacks essential security controls including input validation, output sanitization, resource limits, and user confirmation for external data transmission. The skill requires immediate security improvements before it can be safely used, particularly around input validation and command injection prevention.
Scanner's overall assessment (LLM analyzer)
Second scanner: NVIDIA SkillSpector
Independent static run, no language model, over the same files as the Cisco scan above. How the two scanners compare across the whole corpus: Two scanners, one corpus.
What this skill does
腾讯地图Web服务API集成,用于地点搜索、路线规划、逆地理编码等功能
- Package
- 5 files, 14 KB
- SKILL.md
- 132 words, 12+ sections
- Code
- Shell (1)
- Requires
- bins:
curlpython3; env:TENCENT_MAP_KEY - Version
- 1.0.0
SKILL.md covers: 腾讯地图API技能 · 设置 · 功能 · 1. 地点搜索 (search) · 基础搜索 · 带分页搜索 · 指定区域搜索 · 2. 逆地理编码 (reverse_geocode) · 3. 地理编码 (geocode) · 4. 路线规划 (route) · 5. 周边搜索 (around) · 参数
Findings
CRITICAL Hardcoded API Key Exposure Risk via Environment Variable Data Exfiltrationllm
The skill requires the TENCENT_MAP_KEY environment variable to function. While using environment variables is better than hardcoding, the skill makes multiple external API calls to 'apis.map.qq.com' with this key. If the key is compromised or if the skill is used in an untrusted environment, the API key could be exposed through network traffic or logs. The skill does not implement any key validation, rotation, or protection mechanisms.
scripts/tencent_map.sh
API_KEY="$TENCENT_MAP_KEY"
if [ -z "$API_KEY" ]; then
echo '{"error": "TENCENT_MAP_KEY环境变量未设置"}'
exit 1
fiHIGH Command Injection via Unvalidated User Input in URL Construction Command Injectionllm
The script constructs URLs by directly interpolating user-provided parameters (keyword, region, addresses) into curl commands without proper sanitization or URL encoding. An attacker could inject shell metacharacters or malicious payloads through these parameters, potentially leading to command injection. For example, a keyword containing backticks, semicolons, or other shell special characters could execute arbitrary commands.
scripts/tencent_map.sh
KEYWORD="$1"
REGION="${2:-广州}"
PAGE_INDEX="${3:-1}"
PAGE_SIZE="${4:-20}"
URL="${BASE_URL}/place/v1/search?boundary=region(${REGION},0)&keyword=${KEYWORD}&page_index=${PAGE_INDEX}&page_size=${PAGE_SIZE}&key=${API_KEY}&output=json"HIGH Unrestricted External Network Calls to Third-Party API Data Exfiltrationllm
The skill makes unrestricted HTTP requests to 'apis.map.qq.com' (Tencent Maps API) with user-controlled parameters. While this is the stated purpose of the skill, there are no safeguards against data exfiltration through these API calls. User-provided search terms, addresses, and location data are transmitted to external servers without user confirmation or data minimization controls. An attacker could use this to exfiltrate sensitive location information or probe internal network details.
scripts/tencent_map.sh:14
BASE_URL="https://apis.map.qq.com/ws"
# Multiple curl calls throughout the script:
curl -s "$URL"MEDIUM Missing Resource Limits and Error Handling for API Calls Resource Abusellm
The script lacks proper resource limits, timeouts, and error handling for external API calls. There are no timeouts on curl commands, no limits on response sizes, and minimal error handling. This could lead to resource exhaustion if the API is slow to respond, returns extremely large responses, or if an attacker triggers many concurrent requests.
scripts/tencent_map.sh:38
RESPONSE=$(curl -s "$URL")
# No timeout, no max response size, no retry limitsWhat is in the package
| File | Kind | Size |
|---|---|---|
README.md | doc | 1.9 KB |
SKILL.md | doc | 2.1 KB |
USAGE_EXAMPLES.md | doc | 3.8 KB |
package.json | config | 543 B |
scripts/tencent_map.sh | script | 5.3 KB |
External hosts referenced
lbs.qq.com apis.map.qq.com
Hostnames that appear in the skill's files. Referencing a host is not a finding; compare against the findings above and the skill's stated purpose.
Environment variables referenced
API_KEY BASE_URL KEYWORD KEYWORDS REGION REGIONS TENCENT_MAP_KEY
Package contents recorded 2026-10-22. The scan above ran against the version current at scan time; the two can differ if the skill has since been updated.
What we checked
- Static analyzer. Pattern rules over SKILL.md and bundled files: known-bad commands, exfiltration URLs, secrets, obfuscation.
- Behavioral analyzer. Checks what the skill asks the agent to do against what its description claims it does.
- Llm analyzer. A language model reads the skill and reports intent-level issues the rules cannot express.
- Trigger analyzer. Looks for instructions that fire on conditions the user did not ask for.
- Meta analyzer. A second model pass that validates, deduplicates and re-scores the other analyzers' findings.
What we did not check
- Runtime behaviour. The skill was not executed; findings come from reading its files.
- Anything fetched at install or run time, including remote scripts, package dependencies, and URLs the skill tells the agent to open.
- Content the analyzers cannot read: images, binaries, and some non-English text.
- Known scanner bypass classes. See the methodology and limitations page.
Sources
- Repository: https://clawhub.ai/skills/qqmap
- Raw scan result: 腾讯地图api调用技能-scan.json
- Badge for your README:
 - Request a re-scan