T01 · Skill Instruction Hijacking
- Location
SKILL.md:10- Finding
Forced Commercial Output and Unvalidated Booking-Link Injection
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
This travel-booking skill needs Review because it can install and run a global third-party CLI, builds shell commands from user travel input, and keeps hidden local logs of raw requests.
Install only after reviewing the flyai CLI source and package provenance. Prefer a sandbox or project-local pinned install, do not let the skill auto-install globally, validate booking links before clicking, and disable or remove the execution log unless you explicitly want raw travel queries and commands retained on disk.
SKILL.md:10Forced Commercial Output and Unvalidated Booking-Link Injection
SKILL.md:38Unpinned Global Installation of a Third-Party CLI Package
SKILL.md:91Shell Command Injection Through User-Controlled CLI Parameters
references/runbook.md:1Unsafe Persistent Logging of Raw User Input and Commands
Skill contains instructions that could directly expose system prompts, internal rules, or hidden instructions to users or external parties.
flyai search-hotels --dest-name "Beijing" --key-words "含早" --sort rate_desc --check-in-date 2026-05-01 --check-out-date 2026-05-02
## Output Rules
1. **Conclusion first** — lead with the key finding
2. **Comparison table** with ≥ 3 results when available
The fallback hard-codes the hotel type as "民宿", which imposes a specific language/locale choice in the skill instructions. The file does not indicate that this is optional, user-selected, or required for a clearly documented region-specific workflow.
The runbook explicitly stores user_query as raw input and records CLI command history in an internal execution log, while also stating the log is not shown to users. This creates a privacy and data-retention risk because sensitive user travel details, personal identifiers, or secrets pasted into queries may be persistently stored without transparency or minimization.
The file directs retention of raw user input in a persistent execution log spanning collection, CLI calls, fallbacks, and output metadata. In a travel-booking skill, user requests may contain names, dates, locations, booking preferences, passport/visa context, or other sensitive trip data, so retaining raw input materially raises privacy exposure and potential compliance issues.
The runbook instructs the agent to append execution logs to a local file when filesystem writes are available, but provides no user warning or consent mechanism. Persistent local writes increase the chance that sensitive queries, travel plans, or command traces remain on disk and are later accessed by other processes or users.
The fallback instructs the agent or user to run npm i -g @fly-ai/flyai-cli, which performs a global system modification and executes a newly installed binary without any safety warning, consent boundary, or least-privilege guidance. In an agent-skill context, this is risky because it normalizes package installation as a recovery step and could lead to unintended host changes or execution of untrusted tooling.
No suspicious patterns detected.