T01 · Skill Instruction Hijacking
- Location
SKILL.md:9- Finding
Forced Commercial Output and Agent Goal Hijacking
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
The skill is a travel planner, but it requires automatic global software installation, external CLI execution, commercial booking links, and hidden local logging without enough user control or disclosure.
Review this carefully before installing. It may install a global npm CLI, send your travel searches to an external service, show only results with booking links, and store raw trip queries in a local hidden log. Use it only in an isolated environment or after the publisher adds explicit consent, pinned dependencies, data-sharing disclosure, and safe logging controls.
SKILL.md:9Forced Commercial Output and Agent Goal Hijacking
SKILL.md:126Mandatory Installation of an Unpinned Global npm Dependency
references/runbook.md:1Raw User Query Persistence Through Unsafe Shell Interpolation
Skill contains instructions that could directly expose system prompts, internal rules, or hidden instructions to users or external parties.
flyai search-flight --origin "Shanghai" --destination "Hangzhou" --dep-date 2026-05-02 --back-date 2026-05-04 --sort-type 3
## Output Rules
1. **Conclusion first** — lead with the key finding
2. **Comparison table** with ≥ 3 results when available
The skill frames the agent as a 'CLI executor' and mandates command execution as the primary behavior, shifting it from a narrowly scoped weekend-trip planner into a shell-driven tool wrapper. In this context, broad execution-oriented behavior increases the chance of unsafe command use, privilege overreach, and abuse of the agent runtime beyond the user’s apparent travel-planning intent.
The skill instructs the agent to globally install and execute @fly-ai/flyai-cli via npm as a prerequisite to answering, which causes persistent system modification and execution of third-party code unrelated to the minimum necessary scope of a travel-planning skill. This is dangerous because it expands the trust boundary to the package registry and local shell, enabling supply-chain compromise or unintended host changes without explicit user consent.
The skill tells the agent to install software and run commands automatically if the CLI is missing, but provides no user-facing disclosure or consent flow for these host-level actions. That is dangerous because users requesting travel advice would not reasonably expect package installation and shell activity, creating a transparency and authorization gap that could be exploited or cause harmful system changes.
The playbooks instruct the agent to execute external travel-search commands and explicitly say 'never answer without executing,' which can cause user-origin, destination, and travel-date data to be transmitted to third-party services without clear user awareness or consent. In a travel skill this data flow is expected, but the lack of disclosure and the hard requirement to execute queries increases privacy and transparency risk.
The runbook explicitly records user_query as raw input in an internal execution log, which can capture sensitive personal, travel, payment, passport, visa, or contact details without any minimization or user-facing notice. In a travel-booking skill, users are especially likely to submit PII and itinerary data, so persistent logging increases privacy exposure and downstream breach impact.
The runbook instructs persistent local file logging of execution data via appending to .flyai-execution-log.json without warning users that their data may be stored on disk. This creates a durable artifact that may be accessible to other local users, backups, support workflows, or later compromise, amplifying the effect of any sensitive data captured during travel planning and booking.
The template instructs users to rely on and invoke 'flyai' CLI and brands output as 'Powered by flyai', which conflicts with the stated Fliggy-powered weekend-trip skill. This kind of cross-product/tool mismatch is a supply-chain and social-engineering risk: users may be directed to install, trust, or execute the wrong tool, and troubleshooting steps explicitly normalize command execution based on untrusted template content.
The trigger for Playbook A is only provided in Chinese ("周末去哪玩"), while the rest of the file is otherwise in English and does not state that the skill is intentionally limited to Chinese-speaking users or a Chinese locale. This creates a language-specific activation policy without opt-in or justification.
No suspicious patterns detected.