T01 · Skill Instruction Hijacking
- Location
SKILL.md:8- Finding
Mandatory Commercial Output and Booking-Link Injection
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
This skill can help find pet-friendly hotels, but it requires a global CLI install, builds shell commands from user input, and stores hidden raw-query logs.
Install only after deciding you trust the FlyAI CLI and its package supply chain. Prefer a pinned, local, user-approved install; run it in a restricted environment; disable or remove persistent raw-query logging; and require safe argument-based CLI execution plus validation of booking-link domains before showing links to users.
SKILL.md:8Mandatory Commercial Output and Booking-Link Injection
SKILL.md:72Mandatory Installation of an Unpinned Global npm Package
SKILL.md:91Shell Command Injection Through User-Controlled Parameter Interpolation
references/runbook.md:1Hidden Persistent Logging of Raw User Queries With Unsafe Shell Serialization
Skill contains instructions that could directly expose system prompts, internal rules, or hidden instructions to users or external parties.
flyai search-hotel --dest-name "Hangzhou" --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 example hard-codes the hotel type as 民宿, introducing a specific language/locale choice in the skill content. There is no indication that the user opted into Chinese-language terms or that the locale constraint is intentional and justified for a region-specific workflow.
The runbook explicitly defines an internal execution log that captures the raw user query, which can include personal, financial, or travel-related data. Because the log is not shown to users and no notice, minimization, or retention controls are described, this creates a privacy and data-handling risk if sensitive input is stored unnecessarily.
Taken together, the schema stores raw user input and the persistence section appends the generated log to a local file, creating a concrete path for sensitive user data to be retained. In a travel-booking skill, user queries may contain names, destinations, dates, visa details, insurance needs, or other personal information, so persistent raw logging materially increases privacy and compliance risk.
The runbook instructs the agent to append execution logs to a local file when filesystem writes are available, but provides no safeguards around encryption, permissions, rotation, or user consent. Persisting interaction data to disk increases exposure because sensitive travel requests and derived metadata may remain accessible long after the session ends.
The fallback instructs a global npm install (npm i -g) directly in skill content without warning that it modifies the host environment and requires elevated trust in package supply chain and local PATH changes. In an agent-skill context, encouraging environment modification as part of normal operation increases risk because users or agents may execute it reflexively, and the surrounding 'Do NOT answer with training data' language makes the instruction more operationally forceful.
The file defines invocation triggers partly in Chinese (for example, '可以带狗' and '带宠物住有公园') and hard-codes Chinese search keywords, but it does not state that the skill is Chinese-only or give users a language choice. This can violate language/locale policy guidance when a skill implicitly requires a specific language without opt-in.
No suspicious patterns detected.