T01 · Skill Instruction Hijacking
- Location
SKILL.md:12- Finding
Mandatory Agent Behavior Override and Promotional Output Injection
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
This travel skill has a coherent purpose, but it mandates an unpinned global CLI install, forces externally supplied booking links, and persists raw user-query logs without clear user control.
Install only after reviewing the flyai CLI source and package version, pinning the dependency, and deciding whether you are comfortable with global npm changes, externally supplied booking links, and local retention of raw trip queries. Do not let the skill book, reserve, purchase, submit personal data, or open booking links without an explicit user confirmation step and URL validation.
SKILL.md:12Mandatory Agent Behavior Override and Promotional Output Injection
SKILL.md:126Unpinned Global Installation and Execution of Mutable Third-Party Dependencies
references/runbook.md:32Shell Command Injection Through Raw User Queries and Generated Log Content
references/runbook.md:1Undisclosed Persistent Storage of Raw User Queries and Command History
Skill contains instructions that could directly expose system prompts, internal rules, or hidden instructions to users or external parties.
Full budget orchestration
## 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/budget-trip-planner, which references a moving main branch rather than an immutable version or commit. This creates a supply-chain risk: the content fetched later could differ from what was originally reviewed, and a compromised or malicious upstream change could be installed by users without notice.
The skill advertises booking, reservation, ticketing, insurance, visa, and car-rental capabilities but provides no user-facing warning that these operations may trigger consequential real-world actions or financial commitments. In an agent workflow, this can normalize progressing toward purchases or reservations without an explicit confirmation boundary, increasing the risk of unintended transactions or user confusion.
The skill explicitly instructs the agent to install and run a global npm package (npm i -g @fly-ai/flyai-cli) as a mandatory prerequisite, with no user consent checkpoint or warning that this modifies the host environment. In an agent setting, this creates supply-chain and environment-modification risk because the package could change over time, execute install scripts, or introduce unsafe behavior on the system before the user understands the consequences.
The fallback instructs installing a global npm package and immediately executing it, which modifies the user's system and expands trust to code fetched from the registry without any warning, consent, or safer alternative. In an agent skill context, this is risky because users may treat fallback guidance as authoritative recovery steps and run privileged setup commands they did not intend to execute.
The trigger phrase "good but cheap" is broad, natural conversational language that can easily appear in unrelated user requests. In a skill system that routes or activates playbooks based on trigger text, this ambiguity can cause unintended activation of the wrong workflow, producing actions or recommendations the user did not explicitly request. Because this travel skill can support bookings and reservations, mistaken routing is more sensitive than in a read-only skill.
The file describes internal logging of raw input, commands, fallback behavior, and optional file persistence, but provides no user-facing warning or consent mechanism for this retention and storage. In the context of a budget travel and booking skill, users may submit sensitive itinerary, identity, and financial-adjacent details, making undisclosed logging materially more dangerous and potentially non-compliant with privacy expectations.
The runbook explicitly captures the raw user query and full CLI commands in an internal execution log, which is a form of data collection and retention beyond the advertised trip-planning and booking functionality. In a travel skill, user queries may contain names, destinations, dates, passport/visa details, budgets, or other sensitive travel context, so retaining them increases privacy and misuse risk if logs are exposed or reused.
The runbook instructs appending execution logs to a local file, creating persistent storage of operational and user-derived data that is not disclosed in the skill description. Persistent local logs increase the blast radius of any host compromise, accidental sharing, or multi-tenant leakage because data survives beyond the active session.
No suspicious patterns detected.