Back to skill

Security audit

Travel CN

Security checks for vulnerabilities and agentic risk

Overview

This is a simple China travel lookup guidance skill with purpose-aligned external queries and optional dependency examples, but users should treat the unpinned package installs cautiously.

Before installing or using this skill, understand that it may query Chinese travel providers and may prompt you to install Python packages for scraping or train queries. Use a virtual environment, pin and review package versions, avoid administrator installs, and do not enter credentials or personal travel details unless you trust the target provider and workflow.

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:43
Finding

Unpinned Third-Party Package Installation Instructions

Content
View full analysis

Vulnerability Details

File Location: SKILL.md, lines 43-50 and 64-71
Vulnerability Type: Unpinned and unverified third-party dependencies
Risk Level: Medium

Vulnerable Code

python
# 使用 selenium
pip install selenium

from selenium import webdriver
driver = webdriver.Chrome()
driver.get("https://flight.qunar.com/")
bash
# 使用 12306 API 封装
pip install py12306

from py12306 import Py12306
client = Py12306()
trains = client.query("上海", "北京", "2026-02-20")

Technical Analysis

The skill instructs users or agents to install selenium and py12306 directly from the configured Python package index without pinning versions, validating cryptographic hashes, providing a lockfile, or documenting an approved source.

Consequently, the effective code installed by these commands can change after the skill has been reviewed. If a package release, maintainer account, package registry, or transitive dependency is compromised, pip may retrieve attacker-controlled content. Python packages can execute package-controlled build hooks during installation, and the documented imports subsequently execute package initialization code.

No evidence in the audited files establishes that either named package is currently malicious. The vulnerability is the unsafe and non-reproducible dependency acquisition process.

Attack Path

  1. An attacker compromises a referenced package, one of its transitive dependencies, its publishing account, or the package source used by pip.
  2. The attacker publishes a malicious version that remains compatible with the unrestricted package name.
  3. A user or agent follows the instructions and runs pip install selenium or pip install py12306.
  4. pip resolves and downloads the attacker-controlled release because no approved version or hash is specified.
  5. Malicious code executes through package build/install hooks or when the package is imported by the do ...[truncated 572 chars]
Remediation
View remediation

Remediation Suggestions

  1. Replace unrestricted package installation commands with exact, security-reviewed version pins.
  2. Maintain dependencies in a lockfile generated from an approved package source.
  3. Record and validate cryptographic hashes, and install with pip --require-hashes.
  4. Pin and review transitive dependencies rather than validating only top-level package names.
  5. Document the authoritative package repository and reject unexpected indexes or dependency sources.
  6. Periodically scan pinned versions for known vulnerabilities and update them through a controlled review process.
  7. Run installation and travel-query code in an isolated virtual environment or container under a non-privileged account.
  8. Avoid administrator-level or system-wide package installation.
  9. Verify that py12306 is the intended maintained package and provide its reviewed provenance because the current documentation supplies no source or integrity information.
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
Findings (4)

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
88% confidence
Finding

The title and description are entirely in Chinese and explicitly position the skill as a China-specific travel query tool, but the document does not state that the locale/language restriction is intentional or provide any user opt-in or alternative language handling. Under the policy, forcing a specific language or locale without user choice can be a natural-language policy violation.

Content

No source excerpt is available for this finding.

External Transmission

Medium
Category
Data Exfiltration
Confidence
50% 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 · SKILL.md (reported line 38)May include surrounding context.

bash
# 需要合作伙伴资质
curl "https://api.ctrip.com/flight/search?from=SHA&to=PEK&date=2026-02-20"

爬虫方案

External Transmission

Medium
Category
Data Exfiltration
Confidence
50% 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 · SKILL.md (reported line 57)May include surrounding context.

bash
# 需要合作伙伴资质
curl "https://api.ctrip.com/flight/search?from=SHA&to=PEK&date=2026-02-20"

爬虫方案

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
88% confidence
Finding

The natural-language description is entirely in Chinese and presents the skill as a China-specific travel query tool without stating that language or locale is optional. This can violate language/locale policy when the skill implicitly constrains interaction to a specific language without user choice or explicit justification.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.