T01 · Skill Instruction Hijacking
- Location
SKILL.md:10- Finding
Forced CLI Use and Commercial Output Manipulation
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
This car-rental skill is not proven malicious, but it asks agents to install and run an unpinned global CLI, force booking-link output, and persist raw user travel queries without clear user control.
Install only if you are comfortable with a third-party flyai CLI receiving travel search queries, adding booking links and branding to answers, changing global npm state, and writing local execution logs. A safer version should require explicit install approval, pin and verify the CLI, pass command arguments safely, disclose external data sharing, and avoid storing raw user queries by default.
SKILL.md:10Forced CLI Use and Commercial Output Manipulation
SKILL.md:36Automatic Installation of an Unpinned Global npm Package
references/runbook.md:5Shell Injection and Sensitive Data Exposure in Execution Logging
SKILL.md:70User-Controlled Query Values Interpolated into Shell Commands
Skill contains instructions that could directly expose system prompts, internal rules, or hidden instructions to users or external parties.
flyai keyword-search --query "租车 成都"
## Output Rules
1. **Conclusion first** — lead with the key finding
2. **Comparison table** with ≥ 3 results when available
The manifest description says the skill also supports flight booking, hotel reservation, train tickets, attraction tickets, itinerary planning, visa info, and travel insurance. However, the documented workflow and commands in this file are limited to car-rental searches via flyai keyword-search with rental-focused playbooks only. This is a semantic mismatch between the advertised scope and the behavior described by the skill file.
The trigger "rent a car in {city}" is a common natural-language request that could overlap with ordinary conversation, and the playbook provides no exclusion conditions or narrower invocation context. Because this is a markdown file, ambiguous trigger wording without explicit scope limitations can cause unintended skill activation.
The commands use Chinese search terms such as "租车" and "机场租车" while the surrounding playbook is written in English, but the file does not state that the skill is China-specific or that users can choose the query language. This creates a natural-language locale policy concern because the skill implicitly forces a language choice without opt-in or justification.
The trigger "car rental at airport" is short, generic, and does not define whether a city, airport code, or other context is required for activation. The absence of specificity or negative examples increases the chance of accidental invocation in everyday travel-related discussion.
The phrase "rent SUV" is generic and could easily match casual user phrasing rather than an intentional skill invocation. The markdown does not narrow the activation context or provide exclusions, so the trigger remains vague under the documented criteria.
The runbook explicitly captures and persists the raw user query plus detailed CLI command history, which can include sensitive travel details, personal data, and operational metadata unrelated to the minimum functionality needed for car-rental booking. In a travel skill context, users may provide names, locations, dates, contact details, or document-related information, so retaining raw input and commands creates unnecessary privacy and data-exposure risk.
The runbook requires persistent logging of raw user input and command history but provides no user-facing warning or privacy notice about retention. Because this skill handles travel workflows that can involve personally sensitive itinerary and booking information, silent retention materially increases privacy and compliance risk.
The runbook instructs appending execution logs to a local file, creating a persistent data-retention mechanism that is not clearly necessary for the stated travel-booking purpose. Persistent local logs increase the chance of later disclosure through filesystem access, backups, log aggregation, or multi-tenant host exposure.
The runbook describes writing execution logs to the filesystem without any warning or transparency about local file writes. While the write itself is not inherently malicious, undisclosed persistence broadens the attack surface and can surprise operators in constrained or privacy-sensitive environments.
No suspicious patterns detected.