T01 · Skill Instruction Hijacking
- Location
SKILL.md:8- Finding
Mandatory Agent Role and Commercial Output Hijacking
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
The skill is a real travel-search wrapper, but it asks agents to install and run an unpinned global CLI and persist raw travel queries without enough user control or disclosure.
Review before installing. Only use this skill if you trust the flyai CLI supply chain, are comfortable with provider booking links and branding, and can prevent automatic global npm installs and raw-query log persistence unless explicitly approved and redacted.
SKILL.md:8Mandatory Agent Role and Commercial Output Hijacking
SKILL.md:38Automatic Installation and Execution of Unpinned Third-Party Packages
SKILL.md:92Shell Command Injection Through Interpolated Travel Parameters
references/runbook.md:1Plaintext Raw-Query Logging With a Shell-Injection Sink
Skill contains instructions that could directly expose system prompts, internal rules, or hidden instructions to users or external parties.
flyai search-hotel --dest-name "Shanghai" --key-words "长租" --sort price_asc --check-in-date 2026-05-01 --check-out-date 2026-06-01
## Output Rules
1. **Conclusion first** — lead with the key finding
2. **Comparison table** with ≥ 3 results when available
The README instructs users to run npx skills add alibaba-flyai/flyai-skill/tree/main/skills/long-stay-hotel, which relies on an unpinned remote package/toolchain and a mutable main branch reference. This creates a supply-chain risk: future changes to the package or repository content could cause users to fetch and execute unintended code or install altered skill content without review.
The skill explicitly instructs the agent to install a global npm package (npm i -g @fly-ai/flyai-cli) as part of normal execution, and even says installation is mandatory if the binary is missing. That causes a system-modifying action without prior user confirmation, expands the trusted codebase at runtime, and can expose users to supply-chain risk if the package is compromised or unexpected in the current environment.
Line L25 specifies the hotel type as the Chinese term "民宿". This imposes a specific language/locale in the skill content without any user opt-in or documented region-specific justification, which matches the language/locale policy violation category.
The runbook explicitly records user_query as raw input in an internal execution log, which can capture sensitive personal, financial, travel, or identity data users may provide during booking-related interactions. Because the document says the log is not shown to users and provides no notice, minimization, or redaction guidance, this creates a privacy and data-handling vulnerability rather than a harmless implementation detail.
The runbook instructs the agent to append execution logs to a local file, creating persistent storage of request metadata and potentially sensitive query contents without any retention limit, protection requirements, or user disclosure. In a travel skill context, those logs may include itineraries, visa-related details, names, dates, or other personal data, increasing the risk of unauthorized access or over-retention.
The trigger list mixes English and Chinese and explicitly includes a Chinese-only trigger term, but the file does not state that the skill is region-specific or that users may choose their preferred language. Under the policy, forcing or privileging a specific language without opt-in can be a natural-language policy concern.
No suspicious patterns detected.