Back to skill

Security audit

tencentmap-jsapi-gl-skill

Security checks for vulnerabilities and agentic risk

Overview

This skill is mostly a Tencent Maps development guide, but it also drives phone/SMS-based API key creation and stores the resulting key locally in plaintext.

Review this before installing if you do not want an assistant to help create Tencent Maps keys. Only use the temp-key flow if you are comfortable providing a phone number and SMS code, sending them to Tencent LBS endpoints, and storing the resulting API key locally; prefer setting your own TMAP_JSAPI_KEY manually or securing/deleting ~/.tencentmap/tempkey.json after use.

Vulnerability Patterns
  • Insecure Skill Coding PracticesFinds exploitable flaws such as hardcoded secrets or command injection
  • Skill Instruction HijackingAlters the agent's session goals or safety constraints when the skill loads
  • Agent Memory PoisoningWrites attacker-controlled rules into memory that affect later sessions
  • Remote Payload Retrieval and ExecutionFetches external code whose behavior can change after review
  • Embedded Malicious CodeShips malicious scripts inside the skill and executes them locally
Findings (3)

T09 · Insecure Skill Coding Practices

Warning
Location
tencentmap-jsapi-gl-skill/scripts/create_key.py:84
Finding

Sensitive authentication values are passed through command-line arguments

Content
View full analysis
"}, ensure_ascii=False )) sys.exit(1) result = create_key(sys.argv[1], sys.argv[2], sys.argv[3]) print(json.dumps(result, ensure_ascii=False)) sys.exit(0 if result["error"] == 0 else 1) ``` The documented workflow also invokes related scripts as follows: ```bash python3 scripts/send_code.py python3 scripts/create_key.py python3 scripts/supplement_key.py reuse python3 scripts/save_config.py ``` ### Technical Analysis The workflow places phone numbers, SMS verification codes, session tokens, supplement tokens, and Tencent Maps API keys directly in command-line arguments. Process arguments can be exposed through process inspection facilities, execution telemetry, audit logs, crash reports, shell wrappers, or orchestration systems. Although the values are sent only to the documented Tencent endpoint over HTTPS, command-line transport unnecessarily expands their local exposure. Authentication tokens and verification codes should be treated as secrets even when they are short-lived. This behavior is not required by the declared functionality. The scripts can perform the same operation while reading sensitive fields from standard input, an inherited file descriptor, or another protected inter-process channel. ### Attack Path 1. A user starts the documented temporary-key enrollment workflow. 2. The Agent invokes `create_key.py`, `supplement_key.py`, or `save_config.py` with sensitive values in `ar ...[truncated 985 chars]
Remediation
View remediation

T09 · Insecure Skill Coding Practices

Warning
Location
tencentmap-jsapi-gl-skill/scripts/save_config.py:49
Finding

Phone numbers and API keys are stored in a plaintext file without explicit restrictive permissions

Content
View full analysis
Remediation
View remediation

T09 · Insecure Skill Coding Practices

Note
Location
tencentmap-jsapi-gl-skill/references/jsapigl/demos/折线_折线应用-路线规划.html:49
Finding

A reusable Tencent Maps API key is hardcoded across executable reference examples

Content
View full analysis
``` ### Technical Analysis A credential-shaped Tencent Maps key is embedded directly in distributable and executable reference material. Some examples use it not only to load the browser JSAPI but also to invoke WebService endpoints. Client-side map keys are inherently visible to browser users, so confidentiality alone cannot protect them. Nevertheless, committing and widely duplicating a reusable key creates avoidable risk when its server-side restrictions are unknown. Users may also copy the examples into unrelated applications and unintentionally depend on a shared credential. The repository does not establish that the key is revoked, dedicated exclusively to public demonstrations, or restricted sufficiently to make arbitrary reuse harmless. ### Attack Path 1. An attacker searches the public project files for key parameters. 2. The attacker extracts the hardcoded value. 3. The attacker submits requests to Tencent Maps endpoints using that value or embeds it in another website. 4. If server-side origin, IP, API, and quota restrictions are insufficient, the requests consume the shared key's quota or use enabled services. 5. Legitimate examples may then experience rate limiting, service disruption, or usage attribution problems. No compromise of a user's newly created key is required for this path. ### Impact Assessment Potential impact includes unauthorized API consumpti ...[truncated 400 chars]
Remediation
View remediation
Vulnerability Patterns
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • MCP Least PrivilegeUnderdeclared Capability, Wildcard Permission, Missing Permission Declaration
Findings (363)

Tp4

High
Category
MCP Tool Poisoning
Confidence
98% confidence
Finding

Backend automation for creating or reusing API keys and accessing Tencent LBS console key-management endpoints exceeds the stated function of helping with map rendering and API usage. This can lead to unauthorized credential provisioning, account misuse, and hard-to-detect remote actions if triggered in an agentic environment.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
99% confidence
Finding

Backend automation for creating or reusing API keys and accessing Tencent LBS console key-management endpoints exceeds the stated function of helping with map rendering and API usage. This can lead to unauthorized credential provisioning, account misuse, and hard-to-detect remote actions if triggered in an agentic environment.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
99% confidence
Finding

Backend automation for creating or reusing API keys and accessing Tencent LBS console key-management endpoints exceeds the stated function of helping with map rendering and API usage. This can lead to unauthorized credential provisioning, account misuse, and hard-to-detect remote actions if triggered in an agentic environment.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
97% confidence
Finding

Backend automation for creating or reusing API keys and accessing Tencent LBS console key-management endpoints exceeds the stated function of helping with map rendering and API usage. This can lead to unauthorized credential provisioning, account misuse, and hard-to-detect remote actions if triggered in an agentic environment.

Content

No source excerpt is available for this finding.

Hidden Instructions

High
Category
Prompt Injection
Confidence
60% confidence
Finding

Hidden instructions were detected in comments or invisible text. These could contain malicious directives. Manual review is recommended.

Content

Scanner excerpt · tencentmap-jsapi-gl-skill/references/jsapigl/docs/矢量图形.md (reported line 464)May include surrounding context.

md
<br><br>
## MVTLayer{#MVTLayer}
-------
​&nbsp;&nbsp;&nbsp;&nbsp;用于创建符合mapbox-vector-tile标准的图层对象,叠加在地图上进行显示;**注意,添加MVTLayer后不支持地图设置中心点偏移**。


| 构造函数                                            |

Hidden Instructions

High
Category
Prompt Injection
Confidence
60% confidence
Finding

Hidden instructions were detected in comments or invisible text. These could contain malicious directives. Manual review is recommended.

Content

Scanner excerpt · tencentmap-jsapi-gl-skill/references/jsapigl/docs/附加库:矢量数据图层.md (reported line 38)May include surrounding context.

md
<br><br>
## MVTLayer{#MVTLayer}
-------
​&nbsp;&nbsp;&nbsp;&nbsp;用于创建符合mapbox-vector-tile标准的图层对象,叠加在地图上进行显示;**注意,添加MVTLayer后不支持地图设置中心点偏移**。


| 构造函数                                            |

Description-Behavior Mismatch

High
Category
Not specified by scanner
Confidence
98% confidence
Finding

The script defines a remote endpoint for sending SMS verification codes, which is unrelated to a Tencent Map JSAPI GL development-guide skill. This hidden outbound auth functionality expands the skill from documentation/help into account-verification operations, creating a strong indicator of covert capability misuse or unauthorized user interaction.

Content

No source excerpt is available for this finding.

Context-Inappropriate Capability

High
Category
Not specified by scanner
Confidence
98% confidence
Finding

The function actively sends SMS verification codes to arbitrary phone numbers and returns a session token, enabling an authentication workflow that is unjustified for a map API guidance skill. In this context, the capability could be abused for unsolicited SMS delivery, account-enablement flows, or staging unauthorized access actions under the cover of an unrelated developer-assistance package.

Content

No source excerpt is available for this finding.

Context-Inappropriate Capability

High
Category
Not specified by scanner
Confidence
98% confidence
Finding

The skill authorizes the agent to collect a phone number, handle SMS verification, and obtain API keys, which are sensitive identity and credential operations unrelated to ordinary code-assistance for a mapping SDK. Embedding those actions in a development skill creates a phishing-like trust boundary failure: users may disclose personal data and receive credentials through an agent path they did not specifically choose for account enrollment.

Content

No source excerpt is available for this finding.

Context-Inappropriate Capability

High
Category
Not specified by scanner
Confidence
99% confidence
Finding

The documented workflow writes phone-linked key material to a local config file, creating persistent storage of credentials and personal data on disk without strong justification, protection requirements, or secure storage controls. If the host is shared, compromised, backed up insecurely, or the file permissions are weak, an attacker could recover API keys and associated phone information for abuse or account correlation.

Content

No source excerpt is available for this finding.

Skill Enumeration

Medium
Category
Agent Snooping
Confidence
85% confidence
Finding

Skill enumerates or reads other installed skills. Access to other skills' SKILL.md files or the skills directory reveals prompt instructions, capabilities, and secrets that should be invisible to peer skills.

Content

Scanner excerpt · README.md (reported line 28)May include surrounding context.

Claude Desktop (local)

  • Skills directory is usually: ~/.claude/skills/
  • Register via symlink (recommended):
    bash
    ln -sfn "$(pwd)/tencentmap-jsapi-gl-skill" ~/.claude/skills/tencentmap-jsapi-gl-skill
    

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
90% confidence
Finding

The activation guidance uses broad wording such as “or similar,” which can cause the skill to trigger for loosely related prompts rather than clearly scoped Tencent Map JSAPI GL requests. In an AI skill-loading context, overbroad triggers increase the chance of unintended invocation, unnecessary exposure of the skill’s contents, and interference with other skills or normal assistant behavior.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
78% confidence
Finding

This file is explicitly a Chinese README and presents the skill documentation in Chinese without any stated user opt-in for language preference. Under the policy rule, forcing a specific language without choice can be a locale/language policy violation, especially since the document is positioned as the usage guide for the skill.

Content

No source excerpt is available for this finding.

Skill Enumeration

Medium
Category
Agent Snooping
Confidence
85% confidence
Finding

Skill enumerates or reads other installed skills. Access to other skills' SKILL.md files or the skills directory reveals prompt instructions, capabilities, and secrets that should be invisible to peer skills.

Content

Scanner excerpt · README_zh.md (reported line 28)May include surrounding context.

Claude Desktop(本地)

  • Skills 目录一般为:~/.claude/skills/
  • 注册(软链,推荐):
    bash
    ln -sfn "$(pwd)/tencentmap-jsapi-gl-skill" ~/.claude/skills/tencentmap-jsapi-gl-skill
    

Skill Enumeration

Medium
Category
Agent Snooping
Confidence
85% confidence
Finding

Skill enumerates or reads other installed skills. Access to other skills' SKILL.md files or the skills directory reveals prompt instructions, capabilities, and secrets that should be invisible to peer skills.

Content

Scanner excerpt · README_zh.md (reported line 28)May include surrounding context.

Claude Desktop(本地)

  • Skills 目录一般为:~/.claude/skills/
  • 注册(软链,推荐):
    bash
    ln -sfn "$(pwd)/tencentmap-jsapi-gl-skill" ~/.claude/skills/tencentmap-jsapi-gl-skill
    

Undeclared Tool Scope

Medium
Category
MCP Least Privilege
Confidence
82% confidence
Finding

The skill metadata declares environment-variable requirements and the body instructs reading local files for key retrieval, but it does not explicitly constrain tool permissions or allowed tools. In an agent environment, this increases the chance the skill can access filesystem, environment, or network capabilities beyond what users reasonably expect from a documentation-oriented map-development guide.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

The auto-trigger condition is broad enough to match generic map-related conversations, which can cause the skill to activate in contexts where its privileged behaviors are unnecessary. When a skill also appears to access env/files/network, overbroad triggering increases the likelihood of unintended exposure or execution paths.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
84% confidence
Finding

The flow collects a phone number and SMS verification code, which are sensitive personal and authentication data, but the document lacks privacy and handling guidance. Without warnings, implementers may store, transmit, or display this data insecurely, increasing the risk of privacy violations, account abuse, or interception of one-time codes.

Content

No source excerpt is available for this finding.

External Transmission

Medium
Category
Data Exfiltration
Confidence
60% confidence
Finding

Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

Content

Scanner excerpt · tencentmap-jsapi-gl-skill/references/api_reference.md (reported line 91)May include surrounding context.

请求示例

bash
curl -s -X POST 'https://lbsconsole.map.qq.com/nosession/http/skill/auth/send-code' \
  -H 'Content-Type: application/json' \
  -H 'X-Skill-Nonce: abc123def456' \
  -H 'X-Skill-Timestamp: 1752662400' \

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
89% confidence
Finding

The documentation shows live handling patterns for session_token, supplement_token, and full API keys without clearly labeling them as secrets. In practice, developers often copy examples into logs, screenshots, chats, or client-side code, which can expose reusable credentials and enable unauthorized key creation or quota use within their validity window.

Content

No source excerpt is available for this finding.

External Transmission

Medium
Category
Data Exfiltration
Confidence
60% confidence
Finding

Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

Content

Scanner excerpt · tencentmap-jsapi-gl-skill/references/api_reference.md (reported line 294)May include surrounding context.

请求示例 1:action=reuse(复用老 Key 补额)

bash
curl -s -X POST 'https://lbsconsole.map.qq.com/nosession/http/skill/v2/tempkey/supplement' \
  -H 'Content-Type: application/json' \
  -H 'X-Skill-Nonce: reuse001' \
  -H 'X-Skill-Timestamp: 1752662460' \

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
91% confidence
Finding

This HTML/JavaScript file makes a network request to Tencent's direction API and includes origin and destination coordinates in the request URL. The file contains no visible warning, prompt, or user-facing disclosure that location data is being sent to a remote service.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
92% confidence
Finding

The code calls the IP geolocation service with an empty parameter object when no IP is entered, which causes the provider to use the requester’s own IP by default. That exposes personal location-related data to a third party without an explicit privacy notice or affirmative user consent, which creates a real privacy/compliance risk even though this appears to be a demo.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The page invokes locate() immediately on load, so an IP lookup occurs before the user interacts with the page or meaningfully consents. In this skill context, the file is an instructional demo, which makes the intent benign, but it also increases the chance developers will copy the pattern into production and deploy non-consensual IP-based geolocation.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

This HTML/JS code performs a network call to Tencent Map's geocoding service using coordinates entered by the user, which can reveal location data to an external service. The file contains no privacy notice, confirmation, or explicit disclosure near the action that the entered location will be transmitted for lookup.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.