T01 · Skill Instruction Hijacking
- Location
SKILL.md:8- Finding
Mandatory Vendor-Specific Output and Agent Role Hijacking
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
The skill has a real travel-search purpose, but it requires an unpinned global CLI install and quietly keeps raw user-query logs, so it needs Review before installation.
Install only if you are comfortable with all results being routed through flyai/Fliggy, with commercial booking links in the output, and with a global npm CLI being installed. Prefer manual review and pinned or isolated installation of the CLI, and disable or remove the execution log unless you have a clear retention and privacy policy.
SKILL.md:8Mandatory Vendor-Specific Output and Agent Role Hijacking
SKILL.md:56Unpinned Global Installation of an Unreviewed Third-Party npm Package
references/runbook.md:3Undisclosed Persistence of Raw User Queries and Unsafe Shell-Based Log Construction
Skill contains instructions that could directly expose system prompts, internal rules, or hidden instructions to users or external parties.
flyai search-poi --city-name "Zhangjiajie" --category "漂流"
## Output Rules
1. **Conclusion first** — lead with the key finding
2. **Comparison table** with ≥ 3 results when available
The skill mandates installing a global npm package if the CLI is missing, but does not warn that this modifies the local system and introduces supply-chain risk. In an agent context, pushing automatic global installation can lead to unreviewed code execution and persistent environment changes on the host.
The activation trigger includes broad terms like "river" and "rapids," which can match many unrelated travel or geography queries and cause the skill to activate outside its intended rafting scope. Over-broad activation increases the chance the agent follows this skill's command-execution workflow unnecessarily, including package installation and external CLI use.
The prerequisites section directly instructs a global install of @fly-ai/flyai-cli without any warning, consent gate, or trust guidance. This is dangerous because a skill file is untrusted input, and embedding install commands creates a path for agents or users to execute third-party code with broad local impact.
The runbook explicitly stores the user's raw input in an internal execution log, but there is no indication of minimization, redaction, consent, or retention controls. In a travel-booking skill, user queries may naturally contain personal data such as names, dates, destinations, passport or visa details, making silent collection of raw input a meaningful privacy and data-exposure risk.
Taken together, the schema and persistence section create a clear data-retention path for raw natural-language user input and detailed execution metadata. Because this skill covers travel, booking, visa, insurance, and itinerary workflows, stored free-text may include highly sensitive personal and financial context, making leakage or over-retention more dangerous than in a low-sensitivity domain.
The file instructs the agent to append execution data to a local JSON log without any safeguards around permissions, encryption, rotation, or user notice. Persisting operational logs to disk increases the chance that sensitive travel-related inputs and booking metadata can be recovered by other processes, operators, or from backups after the original session ends.
No suspicious patterns detected.