Back to skill

Security audit

Ctg Travel Booking

Security checks for vulnerabilities and agentic risk

Overview

This expired travel-booking skill is purpose-aligned, but it handles identity data and order changes with weak confirmation and endpoint safeguards.

Prefer the newer version linked by the skill. Only install this if you are comfortable configuring an API key and sending passenger identity and contact details to the travel provider. Before use, ensure the endpoint is an HTTPS vendor URL, avoid broad or ambiguous refund requests, and require the agent to show a final summary before any booking, cancellation, or refund submission.

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 (2)

T09 · Insecure Skill Coding Practices

Error
Location
scripts/apiexe.py:82
Finding

Configurable API Endpoint Permits Plaintext Transmission of Credentials and Passenger Data

Content
View full analysis
Remediation
View remediation

T09 · Insecure Skill Coding Practices

Warning
Location
guide/plane.md:49
Finding

Flight Orders Are Created Without Explicit Final User Confirmation

Content
View full analysis
Remediation
View remediation
Vulnerability Patterns
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Tool MisuseTool Parameter Abuse, Chaining Abuse, Unsafe Defaults
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • MCP Least PrivilegeUnderdeclared Capability, Wildcard Permission, Missing Permission Declaration
Findings (59)

Tp4

High
Category
MCP Tool Poisoning
Confidence
99% confidence
Finding

The declared purpose is travel booking, but the behavior indicates extra CLI/file-processing functionality including shell argument handling and optional file deletion. That mismatch is risky because reviewers and users may approve the skill for booking tasks while hidden or unrelated utility behavior can be abused for local file manipulation or unsafe command execution paths.

Content

No source excerpt is available for this finding.

Missing User Warnings

High
Category
Not specified by scanner
Confidence
93% confidence
Finding

The guide instructs collection and display of highly sensitive personal data, including full identity numbers and phone numbers, and even embeds realistic example values, without any privacy notice, minimization guidance, masking requirement, or consent handling. In a travel-booking context this increases the risk of unnecessary exposure of PII in prompts, logs, chat history, screenshots, and downstream tool invocations, which could lead to identity theft or privacy violations.

Content

No source excerpt is available for this finding.

Missing User Warnings

High
Category
Not specified by scanner
Confidence
98% confidence
Finding

The skill explicitly instructs the agent to collect contact information and then place a flight order directly without a final confirmation. In a booking context, this can cause unauthorized or accidental transactions, reservation holds, and downstream payment obligations based on incomplete or misunderstood user intent.

Content

No source excerpt is available for this finding.

Missing User Warnings

High
Category
Not specified by scanner
Confidence
95% confidence
Finding

This guide enables sensitive operations including passenger creation, order creation, status lookup, and order history access, but it does not require explicit user consent, identity confirmation, or a privacy notice before collecting and transmitting personal data. In a travel-booking context, this increases the risk of unauthorized bookings, exposure of government ID and phone data, and unintended access to historical orders.

Content

No source excerpt is available for this finding.

Tool Parameter Abuse

High
Category
Tool Misuse
Confidence
95% 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 · scripts/json_arg_escape.py (reported line 12)May include surrounding context.

python
python3 scripts/json_arg_escape.py path/to/payload.json

  从文件读取并在输出后删除该文件(用完后不保留):
    python3 scripts/json_arg_escape.py --rm path/to/order_arg.json

  从 stdin 读取(可粘贴或管道):
    python3 scripts/json_arg_escape.py < payload.json

Undeclared Tool Scope

Medium
Category
MCP Least Privilege
Confidence
89% confidence
Finding

The skill references capabilities that imply file access and networked execution, but it declares no explicit tool scope or permission boundaries. In an agent environment, missing scope declarations can allow the skill to run with broader ambient privileges than users or reviewers expect, increasing the chance of unintended file access, data exposure, or outbound requests.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

The top-level trigger list contains broad everyday terms that can activate the skill in contexts that do not actually request travel booking. Unintended activation is dangerous here because the skill can then begin collecting sensitive trip details or invoke external booking flows, creating privacy, confusion, and possible transaction risks.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
92% confidence
Finding

The refund trigger rules reuse generic phrases like '申请退款' across trains, flights, hotels, and tickets, making it easy for the wrong refund workflow to be selected. In a transactional skill, ambiguity can lead to cancellation of the wrong product, disclosure of order data from the wrong domain, or user coercion into confirming unintended actions.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
87% confidence
Finding

The hotel.refund method is a high-impact financial action, but its description only says '申请酒店退订' and does not clearly communicate required preconditions, confirmation expectations, or that values must come from prior deduction/order-detail results. In a booking skill that may autonomously guide users through refunds, this ambiguity increases the risk of accidental or improperly constructed refund requests that could cancel reservations or cause financial loss.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
91% confidence
Finding

This refund endpoint performs an irreversible order-affecting action with direct financial consequences, yet the schema provides no warning about cancellation finality, possible penalties, or the need for explicit user consent. In a travel-booking skill, missing warnings are especially risky because normal user prompts like '退了吧' could lead to unintended cancellations, fees, or disputes if the agent proceeds without strong confirmation.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
92% confidence
Finding

The passenger-saving API collects highly sensitive personal data including full name, ID number, birth date, nationality, and phone number, but the skill metadata shown provides no user-facing privacy disclosure, consent flow, retention notice, or data-handling explanation. In an agent context, this increases the risk of oversharing sensitive identity data to a third-party service without informed user consent.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The manifest requires passengerName to be in Chinese and pinyinName in a specific uppercase romanization format, which imposes a language/locale constraint in natural-language descriptions. There is no indication that this is optional, user-selected, or explicitly justified as a region-specific requirement.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

The hotel order creation endpoint submits traveler identity and contact information, including identity numbers and phone numbers, as part of a booking action without any visible privacy warning or consent checkpoint in the provided skill context. Because this is tied to a transaction flow, users may reveal regulated personal data to the service through the agent with limited awareness of downstream handling.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
90% confidence
Finding

The cancellation API performs a potentially irreversible action on an existing hotel order, yet the schema does not indicate any confirmation requirement, refund/cancellation-policy warning, or explicit notice of impact. In an agent-driven workflow, ambiguous user phrasing or automation mistakes could trigger unwanted cancellations with financial or travel consequences.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
91% confidence
Finding

This manifest contains natural-language constraints such as "旅客姓名(中文)", which require Chinese input for passenger names. Under the policy, forcing a specific language or locale without opt-in or justification is a natural-language policy violation.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
82% confidence
Finding

The manifest defines multiple state-changing and privacy-sensitive operations, including saving passenger PII, creating orders, viewing order history, and cancelling orders, but it does not declare invocation constraints, consent boundaries, or when each action may be used. In an agent setting with broad travel-related triggers, this increases the risk of over-broad tool use, unintended transactions, or retrieval of sensitive data without sufficiently explicit user intent.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
87% confidence
Finding

This JSON manifest includes a natural-language description stating the deduction call is required before a refund, but it does not clearly define invocation scope, exclusions, or negative cases. As a manifest file, this can create overly broad or unclear triggering behavior for agents deciding when to call the skill.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The field description specifies "旅客姓名(中文)", which imposes a Chinese-language requirement in natural-language documentation. The file does not provide an opt-in, alternative locale handling, or a documented region-specific justification for restricting names to Chinese.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

The trigger condition is defined as simply '退订/退款酒店', which is broad enough to activate a state-changing refund workflow without clear scope checks such as confirming the user wants to cancel an existing hotel order. In a booking skill, ambiguous activation increases the chance of the agent initiating refund-related data access or guiding the user into a cancellation flow when the intent was only informational, leading to accidental order changes or privacy exposure.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The refund guidance documents a cancellation workflow and shows fee computation, but it does not require a prominent user-facing warning before submission that the action will change order state and may incur non-refundable fees. In this context, users could confirm a refund flow without understanding financial consequences, making accidental loss or disputes more likely.

Content

No source excerpt is available for this finding.

Ssd 3

Medium
Category
Not specified by scanner
Confidence
88% confidence
Finding

The instruction to remember already collected information after failures encourages retaining order and passenger-related data beyond the immediate transaction need. In a travel-booking context, that data can include identifiers and itinerary details, so informal retention without limits increases exposure risk through leakage across sessions, over-collection, or reuse beyond the user's expectation.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The activation text "预订/查询酒店" is a broad natural-language trigger without clear scope, boundaries, or exclusion examples. In a markdown skill guide, this can cause unintended invocation for general travel conversation or casual hotel inquiries rather than explicit use of this booking workflow.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
96% confidence
Finding

The trigger examples include broad phrases such as '退票' and '我要退票' in a refund workflow involving funds and irreversible actions. In this skill context, overbroad matching can cause the agent to enter a sensitive refund flow from ambiguous conversation, increasing the risk of unintended cancellation attempts, disclosure of order details, or social-engineering-assisted misuse if the agent initiates refund steps without strong contextual validation.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

The activation phrase lists broad verbs like '购买/查询/预订' combined with generic travel nouns, but does not define boundaries for when this skill should or should not activate. Without narrower scope or exclusion examples, ordinary conversation about flights could unintentionally trigger the skill.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
88% confidence
Finding

The skill directs the agent to automatically poll order status every 3 seconds after order submission without separately informing the user that continued background queries will occur. Although limited in scope, this behavior can create unnecessary processing and privacy concerns by continuing to interact with the booking backend on the user's behalf without explicit notice or opt-in.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.