T01 · Skill Instruction Hijacking
- Location
SKILL.md:8- Finding
Mandatory Commercial Output and Agent Instruction Hijacking
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
The skill is a homestay search helper, but it requires an unpinned global CLI install and quietly persists raw travel queries and command history, so it should be reviewed before installation.
Install only if you are comfortable with a globally installed flyai npm CLI handling your travel searches and returning booking links. Before use, require explicit approval for any package installation, pin and verify the CLI version, disable or remove the .flyai-execution-log.json logging behavior, and treat all booking URLs as third-party links that need validation before payment or sign-in.
SKILL.md:8Mandatory Commercial Output and Agent Instruction Hijacking
SKILL.md:73Mandatory Installation of an Unpinned Global npm Package
references/runbook.md:3Undisclosed Persistence of Raw User Queries and Command History
Skill contains instructions that could directly expose system prompts, internal rules, or hidden instructions to users or external parties.
flyai search-hotel --dest-name "Dali" --hotel-types "民宿" --sort rate_desc --check-in-date 2026-05-01 --check-out-date 2026-05-03
## Output Rules
1. **Conclusion first** — lead with the key finding
2. **Comparison table** with ≥ 3 results when available
The manifest description says the skill supports flights, hotel reservations, train tickets, attraction tickets, itinerary planning, visa info, travel insurance, car rental, and more. However, the documented code/workflow in this file only defines activation, parameters, and CLI commands for homestay/hotel search via flyai search-hotel, with no corresponding workflows for those other capabilities.
The runbook explicitly captures the raw user query and every CLI command in an internal execution log, which exceeds what is necessary for a travel-booking skill. Because travel queries may include personal, financial, or itinerary details, persistent collection of this data increases privacy exposure and creates a useful audit trail for misuse or later compromise.
The runbook normalizes collection and persistence of raw user input and execution details without any privacy notice, consent flow, minimization guidance, or retention controls. In a travel context, users commonly disclose destinations, dates, names, and other personal information, so silent logging materially raises privacy and compliance risk.
Persisting the user_query field stores raw user input directly, which may include sensitive travel plans, contact details, or other personal data. Keeping such data in internal logs expands the attack surface and can expose users even if the primary booking flow is otherwise secure.
The runbook instructs appending execution logs to a local file, creating durable storage of potentially sensitive operational and user-derived data. For a homestay/travel assistant, filesystem persistence is not essential to core functionality and increases the risk of unauthorized access, retention beyond need, and secondary exposure through backups or host compromise.
Persistent storage of execution logs compounds the sensitivity of any recorded user input, commands, and operational data by making them durable and easier to collect at scale. This is especially risky for a travel assistant because logs may indirectly reveal identities, schedules, destinations, and booking intent.
The Parameters table states --sort is always rate_desc, implying the skill only sorts by guest ratings. But later sections define valid sort options including price and distance, and Playbook B explicitly uses price_asc, contradicting the earlier instruction.
The execution schema includes an env_check step that runs flyai --version, which is a form of local environment introspection. For a skill whose purpose is travel search and booking, checking host CLI state is not user-facing functionality and is not justified by the manifest description.
No suspicious patterns detected.