T01 · Skill Instruction Hijacking
- Location
SKILL.md:12- Finding
Mandatory Agent Role and Output Hijacking
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
This travel skill has a legitimate purpose, but it automatically installs an unpinned global CLI and persists raw user travel queries in ways that need review before use.
Review this skill before installing. Use it only in a sandbox or controlled environment, require explicit approval before installing `@fly-ai/flyai-cli`, prefer a pinned and reviewed CLI version, and avoid entering sensitive personal or travel details until the logging and command-construction patterns are fixed.
SKILL.md:12Mandatory Agent Role and Output Hijacking
SKILL.md:40Unpinned Global npm Package Installation
references/runbook.md:7Shell Injection Through Execution-Log Persistence
SKILL.md:89Command Injection Through User-Controlled CLI Parameters
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-05-02
## Output Rules
1. **Conclusion first** — lead with the key finding
2. **Comparison table** with ≥ 3 results when available
The README presents the skill as narrowly scoped to finding capsule hotels, but also says it wraps flyai-cli for real-time travel data and booking links, implying broader capabilities than the headline suggests. This scope mismatch can mislead users and agents about what actions, data access, or third-party interactions may occur, undermining informed consent and safe tool use.
The README instructs users to run npx skills add ... without pinning a specific version, which can cause execution of whatever package/version is current at install time. That creates a supply-chain risk: a compromised or malicious upstream package update could execute code on the user's system during installation.
The 'What It Does' section claims the skill only finds capsule/pod accommodation, while nearby text describes broader real-time travel and booking-link functionality via flyai-cli. In agent ecosystems, understated capabilities are dangerous because they can hide transactional or data-sharing behavior behind a seemingly narrow discovery tool.
The skill instructs the agent to install and run a CLI tool without warning that this modifies the host system. In an agent context, automatic package installation can introduce supply-chain risk and unexpected system changes, especially if executed without explicit user consent.
The prerequisites section normalizes npm i -g as a setup step without disclosing that it performs persistent global modification. This is dangerous because users or agents may treat it as harmless preparation and inadvertently trust an unpinned external package with broad execution rights.
This is an active contradiction inside the skill documentation: the parameter guidance restricts --sort to price_asc, while Playbook B later instructs use of --sort distance_asc. That divergence can mislead an agent about intended behavior and cause inconsistent execution.
The environment-check workflow explicitly directs automatic global installation when the command is missing, with no consent checkpoint or risk notice. In a tool-using agent, this can cause unreviewed code execution and persistent system modification, making supply-chain compromise or accidental host alteration materially more likely.
The runbook explicitly stores the user's raw input in an internal execution log as user_query, but provides no user notice, minimization, or redaction guidance. In a travel-booking skill, users may include personal, financial, passport, itinerary, or contact information in free-form queries, so retaining raw text creates avoidable privacy and data exposure risk.
Taken together, the runbook directs the agent to retain raw natural-language user input and persist execution details to disk, creating a straightforward data leakage path. This is more concerning in this skill's context because travel requests commonly contain PII and sensitive trip details, making accidental disclosure, over-retention, or secondary misuse more likely.
The runbook instructs appending execution logs to a local file when filesystem writes are available, again without notice, access controls, or retention constraints. Persisting operational logs to disk increases the blast radius of any sensitive data captured earlier, because local files are often copied, backed up, or read by other processes/users.
The manifest description says the skill 'also supports' flights, train tickets, attractions, itinerary planning, visa info, insurance, car rental, and more. However, the actual workflow in this file is entirely centered on hotel search via flyai search-hotel, specifically capsule-hotel scenarios, with no documented commands or handling for those other travel functions.
The fallback explicitly hard-codes a Chinese hotel type value ("民宿") without any indication that the user's language or locale was considered. This can cause the skill to override user preferences or behave inconsistently across locales, which is a genuine policy/quality issue, though its security impact is limited in this travel-booking context.
No suspicious patterns detected.