T01 · Skill Instruction Hijacking
- Location
SKILL.md:8- Finding
Mandatory Commercial Output and Agent Instruction Hijacking
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
This travel-planning skill is coherent with its FlyAI booking purpose, but it asks for broad automatic tool execution, unpinned global npm installation, and hidden persistent logging of raw user travel queries.
Install only if you trust FlyAI/Fliggy and want booking-link-centered results. Before use, require explicit approval for npm installation, prefer a pinned/local CLI install, disable or redact the execution log, and ensure the agent invokes the CLI with safe argument arrays rather than shell-interpolated user text.
SKILL.md:8Mandatory Commercial Output and Agent Instruction Hijacking
SKILL.md:122Unpinned Global Installation of a Third-Party npm Package
references/fallbacks.md:10Shell Command Injection Risk in User-Controlled CLI Parameters
references/runbook.md:1Hidden Plaintext Logging of Raw User Queries and Unsafe Shell Serialization
Skill contains instructions that could directly expose system prompts, internal rules, or hidden instructions to users or external parties.
Full romantic orchestration to Maldives or Bali
## 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/honeymoon-trip, which pulls and executes tooling without pinning to a specific immutable version or commit. Because it references a moving target (main) and relies on npx, a future compromise of the package or upstream repository could cause users to install or run altered code.
The trigger phrase "honeymoon trip" is broad enough to activate on ordinary travel-planning requests without an explicit confirmation boundary. Because the playbook says to "never answer without executing," an ambiguous activation could steer the agent into tool-driven booking or itinerary flows when the user only intended to ask for general advice.
The trigger "beach honeymoon" is ambiguous and likely to overlap with normal conversational travel requests, making accidental activation plausible. In a travel skill with booking and reservation capabilities, this can cause the agent to enter an operational flow prematurely and produce or initiate actions beyond the user's intended scope.
The phrase "affordable honeymoon" is a generic natural-language request rather than a safely bounded control phrase, so it may collide with benign travel discussions. Given the skill's support for flights, hotels, tickets, and other travel services, overly generic activation increases the risk of unintended tool use, inappropriate recommendations, or progression into transactional workflows without clear consent.
The runbook explicitly stores user_query as raw input in an internal execution log, while also stating the log is not shown to users. That creates a privacy risk because travel queries often contain sensitive personal, financial, itinerary, or passport/visa-related details, and the user is given no notice, minimization, or retention controls.
The schema directs retention of raw user input in an internal log, which is a direct data-minimization failure. In this skill context, honeymoon and travel planning requests can include dates, destinations, relationship details, booking preferences, and potentially passport, visa, or insurance information, making raw retention especially sensitive.
The runbook instructs persistent file-based logging of execution data by appending JSON records to .flyai-execution-log.json, but provides no safety guidance on permissions, retention, encryption, or user notice. Persisting operational and user-derived data in a local file increases the chance of unintended disclosure, accumulation of sensitive history, and unauthorized access on shared or compromised systems.
Appending internal execution logs to a local file enables long-term accumulation of user-provided and operational data, expanding blast radius if the host is accessed by other users, malware, backups, or support tooling. Because the file is append-only in the example, sensitive history can grow indefinitely without safeguards or lifecycle management.
No suspicious patterns detected.