Back to skill

Security audit

通用商旅出行规划助手

Security checks for vulnerabilities and agentic risk

Overview

This travel-planning skill is mostly purpose-aligned, but it asks agents to run unpinned external MCP packages and send detailed trip data to third-party services without strong scoping or privacy controls.

Review before installing. Use only in a sandboxed agent environment, pin and verify MCP package versions before enabling them, provide only the trip details needed for planning, and avoid entering confidential meeting or business information unless you are comfortable sending it to external travel, map, and search services and embedding it in generated reports.

Vulnerability Patterns
  • Insecure DependenciesIntroduces malicious components through unsafe dependency sources
  • 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 (1)

T08 · Insecure Dependencies

Warning
Location
SKILL.md:59
Finding
Unpinned Packages Are Downloaded and Executed Through npx## Vulnerability Details **File Location**: `SKILL.md:59-65, 98-103, 379-384` **Vulnerability Type**: Supply-chain exposure caused by mutable, unverified runtime dependencies **Risk Level**: Medium ### Complete Vulnerable Code Snippets ```markdown | Fire-ticket query | 12306 MCP Server | `npx -y 12306-mcp` | Verified | ... | Travel guide | Xiaohongshu MCP | `npx -y xhs-mcp` | Optional | ``` The original table labels are written in Chinese, but the executable commands are reproduced unchanged above. ```json { "mcpServers": { "12306-mcp": { "command": "npx", "args": ["-y", "12306-mcp"] }, "amap-mcp": { "type": "sse", "url": "https://mcp.amap.com/sse?key={AMAP_WEB_KEY}" } } } ``` The same unpinned configuration is repeated later in the document: ```json { "mcpServers": { "12306-mcp": { "command": "npx", "args": ["-y", "12306-mcp"] } } } ``` ### Technical Analysis The Skill directs the runtime to invoke `npx -y` using package names without exact versions, lockfile enforcement, integrity hashes, or documented source verification. When the package is not already present in an appropriate cache, `npx` can retrieve it from the configured package registry and execute it. The `-y` option suppresses the installation confirmation. Consequently, the code ultimately executed is mutable after this Skill has been reviewed. A future package release, compromised maintainer account, registry compromise, malicious ownership transfer, or unsafe registry configuration could cause different code to execute under the same Skill configuration. This finding concerns dependency integrity. The audit did not establish that either named package is currently malicious. ### Attack Path 1. An attacker compromises the publisher account, release pipeline, registry entry, or ownership of `12306-mcp` or the optional `xhs-mcp` package. 2. The attacker publishes a malicious release under the expected package name. 3. An ...[truncated 1313 chars]
Remediation
## Remediation Suggestions 1. Pin each reviewed dependency to an exact version rather than allowing registry resolution of the latest compatible release: ```json { "command": "npx", "args": ["-y", "12306-mcp@REVIEWED_EXACT_VERSION"] } ``` 2. Prefer a controlled installation step backed by a committed lockfile and verified integrity metadata instead of downloading dependencies when the Skill is invoked. 3. Verify and document each package's official publisher, source repository, release signatures where available, and expected cryptographic digest. 4. Mirror approved artifacts into a trusted internal registry or artifact repository and restrict package-manager configuration so dependency resolution cannot silently use an untrusted registry. 5. Disable package lifecycle scripts where compatible with the dependency, or inspect all required lifecycle scripts before approval. 6. Execute MCP dependencies inside a restricted sandbox or container with: - A non-privileged user. - Read-only access to the project where possible. - No access to unrelated home-directory files. - A minimal environment containing only required credentials. - Network egress limited to required service endpoints. - Resource and process limits. 7. Apply the same controls to the optional `xhs-mcp` integration before enabling it. 8. Add automated dependency monitoring and require security review before updating pinned versions.
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
Findings (5)

Vague Triggers

Medium
Confidence
93% confidence
Finding
The trigger phrases are very broad and match common travel-related conversation, which can cause the skill to activate in ordinary chats without clear user intent. In this skill's context, unintended activation is more dangerous because it may collect detailed itinerary data, call external services, and generate sharable reports and booking links containing sensitive travel information.

Missing User Warnings

Medium
Confidence
95% confidence
Finding
The skill description does not warn users that itinerary details, locations, dates, budgets, and possibly meeting information will be sent to external services and embedded in generated HTML reports and booking links. In a business-travel context, this can expose sensitive operational data to third parties or through shared artifacts, making the omission a meaningful privacy and confidentiality risk.

Vague Triggers

Medium
Confidence
90% confidence
Finding
The markdown trigger section repeats broad activation rules without clear boundaries, increasing the chance of accidental invocation across normal multilingual conversation. Because this skill integrates web search, map APIs, and report generation, accidental activation can expand data exposure and create misleading booking/report artifacts without the user's informed intent.

Rp1

Medium
Category
MCP Rug Pull
Confidence
93% confidence
Finding
The skill references an external MCP server package via `npx -y xhs-mcp` without pinning an exact version or integrity constraint. This creates a supply-chain risk: a future malicious or compromised package release could be executed automatically when the skill is used, especially because MCP tools may receive sensitive travel context and have broad runtime access.

Natural-Language Policy Violations

Low
Confidence
86% confidence
Finding
The template sets `lang="zh-CN"` and uses Chinese-only titles/content placeholders, indicating a fixed locale. The document does not state that this is a China-specific tool or offer any user opt-in or language selection.

Static analysis

No suspicious patterns detected.