Back to skill

Security audit

航班动态追踪

Security checks for vulnerabilities and agentic risk

Overview

This skill is a coherent flight-status lookup tool that sends requested flight and airport queries to an external proxy, with some disclosure gaps but no hidden persistence, destructive behavior, or unrelated data access.

Install this only if you are comfortable sending flight numbers, routes, dates, and airport/weather queries to the listed external proxy service and managing the PROXY_TOKEN as a secret. The skill appears purpose-aligned, but its zero-configuration wording understates the token requirement and its broad weather/airport triggers may activate more often than expected.

Vulnerability Patterns
  • 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
  • Unauthorized Access and Privilege EscalationObtains permissions beyond the task's legitimate needs
Vulnerability Patterns
  • 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
  • Taint TrackingDirect Taint Flow, Variable-Mediated Taint Flow, Credential Exfiltration Chain
  • MCP Least PrivilegeUnderdeclared Capability, Wildcard Permission, Missing Permission Declaration
Findings (8)

Tainted flow: 'req' from os.environ.get (line 102, credential/environment) → urllib.request.urlopen (network output)

Critical
Category
Data Flow
Confidence
90% confidence
Finding

Credentials or environment variables flow to a network sink. This is a high-confidence indicator of credential exfiltration.

Content

Scanner excerpt · scripts/flight_tracker.py (reported line 113)May include surrounding context.

python
)

    try:
        with urllib.request.urlopen(req, timeout=30) as resp:
            result = json.loads(resp.read().decode('utf-8'))
            # SCF代理返回格式:{"code": 0, "data": {飞常准原始响应}}
            if result.get("code") == 0:

Undeclared Tool Scope

Medium
Category
MCP Least Privilege
Confidence
92% confidence
Finding

The skill declares access to a proxy token and describes a data flow through a proxy service and external API, but it does not define an explicit tool or permission scope. That creates unnecessary ambiguity about what network and environment access the runtime may use, increasing the chance of over-privileged execution or unintended external data access if the implementation changes or is abused.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
92% confidence
Finding

The prompt, examples, and user-facing instructions are entirely in Chinese, which effectively forces a specific language experience. There is no indication that the skill is intentionally limited to Chinese-speaking users or that users may interact in another language.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
90% confidence
Finding

The trigger patterns are broad enough to match common travel-related conversation, such as generic mentions of cities, flights, delays, or weather. This can cause unintended skill activation, leading to unnecessary external API calls, possible disclosure of user travel queries to third-party services, and tool use outside the user's clear intent.

Content

No source excerpt is available for this finding.

Intent-Code Divergence

Medium
Category
Not specified by scanner
Confidence
96% confidence
Finding

The documentation materially misrepresents the security model by stating that the skill is zero-configuration with the API key hidden on the proxy side, while the implementation depends on a client-provided proxy token. Misleading security claims cause unsafe deployment assumptions and can result in secrets being distributed more broadly than intended.

Content

No source excerpt is available for this finding.

Context-Inappropriate Capability

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

The skill claims zero configuration and that credentials are hidden on the proxy, yet it requires a PROXY_TOKEN from the runtime environment. This creates a hidden secret dependency that can lead operators to provision and manage credentials unexpectedly, increasing the chance of misconfiguration, failed access, or insecure secret handling.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

User-supplied travel data such as flight numbers, routes, dates, and airport queries are transmitted to a third-party remote proxy service without any explicit disclosure or consent mechanism. Even if the data is not highly sensitive in isolation, travel queries can reveal location, timing, and itinerary interests, and the hard-coded external proxy expands the trust boundary.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
91% confidence
Finding

Natural-language strings throughout the script, including usage, errors, and output formatting, are exclusively in Chinese. There is no indication that the user can opt into another language or that the locale restriction is documented as an intentional region-specific constraint.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.