Back to skill

Security audit

travel-blind-box

Security checks for vulnerabilities and agentic risk

Overview

This travel-planning skill is mostly coherent, but it stores and repeatedly outputs sensitive trip and booking details without enough privacy controls or scoping.

Review before installing. Use it only if you are comfortable sending trip details to flyai/third-party booking services and storing travel history locally. Avoid entering real booking confirmation numbers unless necessary, keep generated itineraries private, verify output paths, and prefer a pinned flyai dependency.

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

T08 · Insecure Dependencies

Warning
Location
package.json:17
Finding

Unbounded Third-Party Dependency Creates Supply-Chain Risk

Content
View full analysis
=1.0.0" } ``` ### Technical Analysis The project permits any current or future `flyai` version greater than or equal to `1.0.0`. No lockfile, integrity hash, upper version constraint, trusted publisher information, or dependency verification procedure is included. The Skill relies on `flyai` for travel information, prices, availability, and third-party booking links. Consequently, a compromised, malicious, or incompatible future release could alter Skill results or receive user-supplied travel information without any change to the reviewed project. The broad version constraint does not prove that the current package is malicious. However, it prevents the reviewed dependency version from remaining reproducible and creates a supply-chain exposure when the Skill is installed or updated. ### Attack Path 1. An attacker compromises the upstream `flyai` package or publishes a malicious future version through the dependency source. 2. A user or deployment system installs or updates this project. 3. Dependency resolution accepts the malicious version because it satisfies `>=1.0.0`. 4. The Skill invokes the compromised dependency for travel searches. 5. The dependency can return manipulated recommendations or booking links, mishandle user travel information, or perform any actions allowed by its execution environment. ### Impact Assessment A compromised dependency would execute with the permissions granted to the host Agent or dependency runtime. Depending on those permissions, the impact could include: - Exposure of locations, travel dates, budgets, and other query data sent to the dependency. - Manipulation of hotel, transport, attraction, or pricing results. - Delivery of misleading or attacker-controlled booking links. - Additional local or netw ...[truncated 256 chars]
Remediation
View remediation

T09 · Insecure Skill Coding Practices

Warning
Location
scripts/itinerary_generator.py:126
Finding

Booking Confirmation Data Is Rendered and Stored Without Redaction Controls

Content
View full analysis
Remediation
View remediation
str: if len(value) <= 4: return "*" * len(value) return "*" * (len(value) - 4) + value[-4:] ``` 3. Require explicit user consent before including complete confirmation details in an exported itinerary. 4. Provide separate output modes: - A share-safe itinerary with all sensitive values redacted. - A private itinerary containing full values only when explicitly requested. 5. Derive output directories from the active user and session rather than using a developer-specific absolute path. 6. Apply restrictive file permissions to private itinerary files. 7. Avoid resending complete sensitive itineraries after every update; send a redacted change summary instead. 8. Establish a retention period and provide a deletion mechanism for generated files and booking data. 9. Warn users not to place full confirmation numbers in shared conversations or documents. 10. Add tests verifying that default output never contains an unmasked confirmation number. ]]>
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Tool MisuseTool Parameter Abuse, Chaining Abuse, Unsafe Defaults
  • MCP Least PrivilegeUnderdeclared Capability, Wildcard Permission, Missing Permission Declaration
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
Findings (53)

Tool Parameter Abuse

High
Category
Tool Misuse
Confidence
95% confidence
Finding

The quickstart includes a recursive force-delete command, rm -rf ~/.qoderwork/skills/travel-blind-box/, for routine reinstallation. Even though the target path is narrower than the home directory, users may copy it blindly, run it in the wrong context, or adapt it incorrectly, causing irreversible deletion of local data; the danger is amplified because this is end-user setup documentation, not an admin playbook with safeguards.

Content

Scanner excerpt · QUICKSTART.md (reported line 249)May include surrounding context.

  1. 重新安装技能:
    bash
    # 删除旧版本
    rm -rf ~/.qoderwork/skills/travel-blind-box/
    
    # 重新复制技能文件
    cp -r /path/to/travel-blind-box ~/.qoderwork/skills/
    

Tool Parameter Abuse

High
Category
Tool Misuse
Confidence
95% confidence
Finding

The quickstart includes a recursive force-delete command, rm -rf ~/.qoderwork/skills/travel-blind-box/, for routine reinstallation. Even though the target path is narrower than the home directory, users may copy it blindly, run it in the wrong context, or adapt it incorrectly, causing irreversible deletion of local data; the danger is amplified because this is end-user setup documentation, not an admin playbook with safeguards.

Content

Scanner excerpt · QUICKSTART.md (reported line 249)May include surrounding context.

  1. 重新安装技能:
    bash
    # 删除旧版本
    rm -rf ~/.qoderwork/skills/travel-blind-box/
    
    # 重新复制技能文件
    cp -r /path/to/travel-blind-box ~/.qoderwork/skills/
    

Tp4

High
Category
MCP Tool Poisoning
Confidence
91% confidence
Finding

声明强调“使用 flyai skill 查询实时信息”,这是关键能力,但代码实际没有调用任何外部 API、skill 或实时数据源,只依赖本地写死的城市候选与预算信息,因此描述与行为存在实质不符。此外,代码还加入了酒店和交通的模拟预订跟踪、确认号保存等未声明功能。历史记录避免重复推荐和行程生成这两部分与声明基本一致,但不足以弥补对‘实时信息查询’这一主要卖点的缺失。因此应判定为描述与实际行为不匹配。

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
97% confidence
Finding

The declared description presents a full blind-box travel planning skill whose core function is selecting destinations the user has not visited, using trip inputs and real-time information, and producing a relaxed itinerary with history-based deduplication. The supplied code does not implement any of those core behaviors. Instead, it primarily performs random budget allocation based only on total budget and days, outputs text/JSON reports, and includes an in-memory booking tracker that can summarize manually added bookings. There is no destination selection, no travel-history handling, no real-time querying, no flyai integration, and no use of location or departure date. This is a material purpose and capability mismatch, not just a partial implementation detail.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
95% confidence
Finding

The description promises a full blind-box travel planning tool with destination recommendation based on user inputs such as current location, departure date, days, and budget, plus real-time information retrieval and itinerary generation. The supplied code only implements local history management and a simple recommendation helper based on a static city map. It does support the history aspect used to avoid duplicate destinations, which aligns partially with the description, but the main advertised planning capabilities are absent. Additionally, the code exposes undeclared capabilities like importing/exporting history and showing statistics. Therefore, the description does not accurately represent the actual behavior.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
96% confidence
Finding

The description promises an automated novelty-focused travel planner with destination recommendation, real-time queries, and history-based avoidance of repeats. The supplied code does none of that. It defines an ItineraryGenerator class that accepts a city and trip dates, allows callers to manually add booking records and daily activities, and outputs a formatted itinerary. Its core behavior is presentation/rendering of preexisting travel details, not discovery, recommendation, or dynamic planning. There are no external API calls, no history storage, no budget handling, and no logic for selecting unvisited destinations. This is a material description-behavior mismatch, not just an implementation detail difference.

Content

No source excerpt is available for this finding.

Tool Parameter Abuse

High
Category
Tool Misuse
Confidence
85% confidence
Finding

Tool parameters are crafted to achieve unintended or unsafe behavior. Parameter abuse can bypass intended safety checks (e.g. shell=True, --force, dangerous glob patterns).

Content

Scanner excerpt · STANDALONE_GUIDE.md (reported line 273)May include surrounding context.

A: 删除历史文件即可:

bash
rm ~/.qoderwork/travel-blind-box/history.json

Q: 预订是真实的吗?

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

The publishing guide markets automatic travel-history recording and "never repeat" destination logic without any user-facing disclosure that location and trip-history data may be stored persistently. Because the skill handles sensitive behavioral and location data, omission of retention, consent, and deletion details can mislead users into sharing data they would not otherwise provide.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
88% confidence
Finding

The guide states the skill will assist with booking and automatically generate itineraries using external real-time travel information, but it does not warn users that their inputs may be shared with third-party services or that external actions may occur. This can create unauthorized data sharing or user confusion about whether recommendations, searches, or booking-related actions involve outside systems.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

Medium
Category
Not specified by scanner
Confidence
90% confidence
Finding

Manifest 描述强调的是盲盒目的地推荐、实时信息查询和历史记录避免重复,但该文档明确新增了预订跟踪与行程单生成功能,包括酒店、交通、景点的确认号和可打印行程表。这不是实现推荐功能所必需的细节,而是把技能能力扩展到了预订后管理与文档生成。

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
91% confidence
Finding

The document proposes storing and regenerating itinerary artifacts containing hotel details, transport records, confirmation numbers, phone numbers, and emergency contacts, but gives no retention, masking, access-control, or consent guidance. Travel itineraries are privacy-sensitive and can enable stalking, social engineering, account recovery abuse, or physical security risks if exposed.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

The sample flow exposes generated travel documents through local file links, implying persistent artifacts that may be readable by other users, logged by the platform, or accidentally shared. Because the files include booking status and confirmation data, unsafe file exposure increases the chance of privacy leakage and targeted fraud.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The description says the skill performs real-time queries through the flyai skill but does not warn that user-supplied travel information may be sent to an external dependency. Because travel plans can include sensitive location, timing, and budget data, lack of disclosure undermines informed consent and can create privacy/compliance issues.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

The publish copy explicitly promotes 'one-click booking' and third-party platform links but does not disclose that users may leave the current system or share trip details with external services. This can mislead users about where their data is going and increases privacy and phishing risk when external booking flows are introduced.

Content

No source excerpt is available for this finding.

Skill Enumeration

Medium
Category
Agent Snooping
Confidence
80% 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 · PUBLISH_CHECKLIST.md (reported line 214)May include surrounding context.

确认文件存在:

bash
ls ~/.qoderwork/skills/travel-blind-box/SKILL.md

如果看到 SKILL.md,说明安装成功!✅

Skill Enumeration

Medium
Category
Agent Snooping
Confidence
80% 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 · QUICKSTART.md (reported line 14)May include surrounding context.

确认文件存在:

bash
ls ~/.qoderwork/skills/travel-blind-box/SKILL.md

如果看到 SKILL.md,说明安装成功!✅

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

The quickstart recommends deleting the installed skill directory with rm -rf as part of reinstallation, but does not clearly warn that this is a destructive operation or suggest verifying the path first. In documentation aimed at end users, destructive shell commands increase the chance of accidental data loss, especially if copied blindly or modified incorrectly.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
91% confidence
Finding

The README states that the skill performs real-time queries through a third-party flyai skill for travel information, but it does not warn users that trip details such as destination, dates, budget, and preferences may be sent to an external service. This creates an undisclosed data-sharing path that can leak personal travel plans and profiling data to another system with unknown privacy and retention practices.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
92% confidence
Finding

The README explicitly describes automatically generating and re-sending detailed itineraries containing hotel addresses, confirmation numbers, and transport details, but it does not mention consent, minimization, storage, or sharing controls. This can expose sensitive travel metadata and booking identifiers to unintended recipients or logs, increasing privacy and account-abuse risk if the data is forwarded or retained insecurely.

Content

No source excerpt is available for this finding.

Undeclared Tool Scope

Medium
Category
MCP Least Privilege
Confidence
89% confidence
Finding

The skill instructs the agent to read and write files, invoke local scripts, and persist generated outputs, but it declares no explicit tool scope or permissions boundary. This creates an authorization gap where the agent may gain broader file access than users expect, increasing the risk of unintended data exposure or workspace modification.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The description and all user-facing prompts are written as if the skill operates in Chinese by default, with no indication that the user may choose another language. This can violate language/locale policy because it imposes a specific language experience without opt-in or documented regional justification.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

The skill records and redisplays sensitive travel details such as hotel information, transport details, dates, addresses, and confirmation numbers without a prominent privacy warning or clear consent flow. In the travel context, this data can reveal a user's movements and future absence from home, making unauthorized retention or disclosure especially sensitive.

Content

No source excerpt is available for this finding.

Ssd 3

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The skill instructs the agent to retain, update, and resend detailed booking information including confirmation numbers, dates, hotel addresses, and full itinerary data. Repeated redistribution of this data increases exposure risk and can facilitate privacy violations, social engineering, or stalking if outputs are viewed by unintended parties.

Content

No source excerpt is available for this finding.

Ssd 3

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

Persisting full itineraries and booking-related personal data to a workspace file creates durable storage of sensitive travel information. In this context, the data includes future travel timing and locations, so unnecessary persistence materially increases confidentiality risk if the workspace is shared, backed up, or later accessed by other processes.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

This markdown file includes a destructive filesystem operation: deleting ~/.qoderwork/travel-blind-box/history.json. While the command is presented as a way to clear history, it lacks an explicit warning that the action is irreversible and will remove prior records.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.