T01 · Skill Instruction Hijacking
- Location
SKILL.md:11- Finding
Mandatory Promotional Output and Agent Behavior Override
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
This travel-booking skill has a coherent purpose, but it requires unpinned global CLI installation, executes user-derived shell commands, and persists raw travel queries without clear consent or safeguards.
Review carefully before installing. Only use this skill if you trust the flyai npm package and are comfortable with a global install, external booking links, and local logging of travel queries. Prefer a version that pins and verifies the CLI, asks before installing or writing logs, validates user input, and uses safe non-shell process execution.
SKILL.md:11Mandatory Promotional Output and Agent Behavior Override
SKILL.md:42Unpinned Global Installation and Execution of a Third-Party npm Package
references/playbooks.md:19Shell Command Injection Through Unsanitized Travel Parameters
references/runbook.md:33Plaintext Persistence of Raw User Queries and Executed Commands
Skill contains instructions that could directly expose system prompts, internal rules, or hidden instructions to users or external parties.
flyai search-flight --origin "Shanghai" --destination "Sanya" --dep-date 2026-06-14 --journey-type 1 --sort-type 2
## Output Rules
1. **Conclusion first** — lead with best couple-friendly option
2. **Romantic tip** — suggest romantic destinations or timing
The skill explicitly directs the agent to install a global npm package and execute its CLI as a mandatory prerequisite, but provides no user-consent step, trust verification, or sandboxing guidance. This creates a supply-chain and arbitrary command-execution risk because the agent may modify the host environment and run untrusted third-party code purely based on skill instructions.
The trigger definition includes Chinese phrases as required activation language, but the file does not state that the skill is region-specific or that users may choose their preferred language. This creates a natural-language locale policy concern because the skill appears to hard-code language-specific invocation patterns without opt-in.
This trigger list again embeds Chinese-only activation phrases alongside English ones without explaining locale scope or offering a language choice. Under the policy, language constraints should be optional or clearly justified as region-specific.
The playbook defines Chinese trigger phrases but does not document locale restrictions or user language selection. This is a policy issue because language-specific activation is being imposed implicitly rather than offered as a choice.
The runbook explicitly stores the raw user query in an internal execution log and instructs the agent to persist logs to a local file, while also stating the log is not shown to users. In a travel-booking skill, raw queries can contain personal and sensitive data such as names, destinations, dates, passport or visa details, and special requests, so retaining them without clear notice, minimization, or retention controls creates a real privacy and data-governance risk.
The template claims results are 'Powered by flyai' even though the skill metadata says the service is powered by Fliggy. This provider mismatch can mislead users about the source of travel data and booking links, weakening trust boundaries and increasing phishing, impersonation, or unsafe redirection risk if users rely on the displayed branding.
The failure template instructs users to use 'flyai' and a 'flyai-cli' even though the skill is described as Fliggy-powered. In a travel-booking context, directing users to the wrong tool or ecosystem can cause credential exposure, accidental use of unauthorized software, or trust confusion that attackers could exploit through typosquatting or fake CLI distributions.
No suspicious patterns detected.