T01 · Skill Instruction Hijacking
- Location
SKILL.md:9- Finding
Mandatory Commercial Output and Agent Behavior Hijacking
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
This travel skill is mostly about flight search, but it asks the agent to install a global CLI, may escalate to sudo, builds shell commands from user travel details, and persists raw user queries locally.
Review before installing. Use only in an environment where global npm installs are allowed, do not run the sudo fallback, and avoid entering sensitive personal, passport, booking, or account details unless logging is removed or explicitly controlled. Prefer a version that pins the CLI dependency, validates parameters, avoids shell interpolation, discloses third-party routing, and disables raw persistent logs by default.
SKILL.md:9Mandatory Commercial Output and Agent Behavior Hijacking
references/fallbacks.md:3Unpinned Global Package Installation with Sudo Escalation
references/playbooks.md:15Shell Command Injection Through User-Controlled Travel Parameters
references/runbook.md:31Unsafe Persistent Logging of Raw User Input
Skill contains instructions that could directly expose system prompts, internal rules, or hidden instructions to users or external parties.
flyai search-flight --origin "Beijing" --destination "Sanya" --dep-date-start 2026-07-01 --dep-date-end 2026-08-31 --sort-type 3
## Output Rules
1. **Conclusion first** — lead with best seasonal option
2. **Seasonal note** — indicate whether price is peak or off-peak
The manifest advertises broad travel capabilities such as hotels, trains, visas, insurance, and car rentals, but the implementation only defines seasonal-flight workflows. This mismatch can cause incorrect skill activation or user trust issues, and in multi-skill agents it may route unrelated requests into a workflow that then installs tools or executes commands unnecessarily.
The skill mandates a global npm install (npm i -g @fly-ai/flyai-cli) as part of normal execution without user confirmation or safety gating. This is dangerous because it modifies the host environment, pulls and executes third-party package installation code, and could be abused on sensitive systems or CI/agent runtimes where package installation is prohibited.
Commands invoke sudo or root privileges. Verify this elevated access is necessary and justified.
npm i -g @fly-ai/flyai-cli
flyai --version
# Fails → sudo npm i -g @fly-ai/flyai-cli
# Still fails → STOP. Do NOT answer with training data.
# Tell user: "Please run npm i -g @fly-ai/flyai-cli manually."
The fallback playbook sends a constructed itinerary query containing origin, destination, and season to a generic keyword-search command without any indication of user consent, disclosure, or minimization. In a travel skill, those parameters can reveal planned travel behavior, and broad search tools may route data to external search/indexing systems with different privacy expectations than a direct flight lookup.
The runbook explicitly records user_query as raw input in an internal execution log, while also stating the log is not shown to users. In a travel-booking context, user queries can contain names, dates, destinations, booking references, passport/visa details, or other sensitive travel data, so storing them without minimization or disclosure creates a real privacy and retention risk.
Taken together, the schema captures natural-language user_query, command history, fallback actions, and output metadata, then persists that data to disk. This creates a compounded data leakage risk because free-form user text often contains sensitive information, and command/result traces can further reveal internal workflow details or user-specific travel activity.
The runbook instructs appending execution logs to a local file .flyai-execution-log.json whenever filesystem writes are available, but provides no notice, access controls, retention limits, or encryption guidance. Persistent local storage increases the chance that sensitive travel and booking-related data can be exposed to other processes, users, backups, or later compromise.
No suspicious patterns detected.