T01 · Skill Instruction Hijacking
- Location
SKILL.md:10- Finding
Mandatory Third-Party Commercial Output and Agent Behavior Override
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
The skill has a coherent travel-search purpose, but it asks the agent to install and run a third-party CLI with broad local effects and to keep hidden logs of user travel queries.
Review this skill before installing. Only use it if you intentionally want flyai/Fliggy as the data and booking provider, avoid running sudo npm install for it, and be aware that the runbook asks agents to store raw travel queries and command history locally unless you disable or constrain that behavior.
SKILL.md:10Mandatory Third-Party Commercial Output and Agent Behavior Override
SKILL.md:69Unpinned Global Installation of a Third-Party npm Package
references/fallbacks.md:3Root-Level Installation of an Unverified npm Package
SKILL.md:91Shell Command Injection Through Direct Parameter Interpolation
references/runbook.md:7Unsafe Plaintext Persistence of Raw User Queries and 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 "Kunming" --dep-date 2026-06-01 --dep-hour-start 6 --dep-hour-end 18 --journey-type 1 --sort-type 8
## Output Rules
1. **Conclusion first** — lead with most comfortable senior-friendly option
2. **Comfort tips** — remind about priority boarding, aisle seats, and wheelchair assistance
The skill mandates installing CLI tooling when absent, which pushes the agent toward making system-wide changes without explicit user approval. Automatic installation increases supply-chain and environment-modification risk, especially because global npm packages execute fetched code and can alter the host outside the user’s immediate intent.
The documented npm i -g @fly-ai/flyai-cli command directs a global package installation with no warning about system changes, permissions, or code provenance. In an agent setting, this can lead to silent execution of remote code and persistent modification of the environment, which is unsafe unless explicitly authorized by the user.
The skill’s parameter-mapping section instructs the agent to use --back-date even though that flag is not listed in the approved Parameters table and the skill earlier says unlisted flags must never be invented. This contradiction can cause the agent to issue unsupported commands, fail unpredictably, or normalize unsafe parameter drift where undocumented options are trusted without validation.
The fallback instructs users to globally install a CLI and then escalate to sudo npm i -g, which can execute package install scripts with root privileges and make persistent system-wide changes. In a travel skill context, this is unnecessary privilege escalation guidance and exposes users to supply-chain compromise or accidental system modification without any warning or safer alternative.
The skill explicitly includes a sudo command for installing an npm package, encouraging root execution of third-party package code. Because npm packages may run lifecycle scripts during installation, this can give a compromised or malicious package full administrative access to the host.
npm i -g @fly-ai/flyai-cli
flyai --version
# Fails → sudo npm i -g @fly-ai/flyai-cli
# Still fails → STOP. Do NOT answer with training data.
# Tell user: "Please run npm i -g @fly-ai/flyai-cli manually."
The document says the agent maintains an internal log not shown to users and includes raw user input in that log, but provides no warning, consent mechanism, or privacy disclosure. In a travel assistant, hidden retention is especially concerning because users may submit identifiers, booking details, dates of travel, accessibility needs, or senior-status information they would not expect to be silently stored.
The runbook explicitly instructs the agent to log the user's raw input and detailed execution metadata for every request, even though a senior-flight search/booking skill does not inherently require retaining full prompts. In this travel context, raw queries may contain personal, financial, health, age, passport, or itinerary details, creating unnecessary data collection and increasing privacy and misuse risk.
The runbook directs the skill to append execution logs to a local file, creating durable storage of potentially sensitive request and operational data without a demonstrated business need. Persistent filesystem logs expand the exposure window for personal travel information and can be read, copied, or mishandled by other processes or operators.
The runbook instructs persisting logs to disk without disclosing retention, security controls, deletion behavior, or system impact. This creates opaque data-retention behavior and raises the risk of unintended accumulation of sensitive travel-related data on the host system.
The playbook includes Chinese trigger phrases alongside English ones, but the file does not explain whether the skill is intended to operate bilingually or within a Chinese-language locale. Because the policy requires language or locale constraints to be optional or clearly justified, hardcoded multilingual trigger expectations can be a policy concern when no user choice or scope is stated.
This trigger definition again hardcodes a Chinese activation phrase without any stated locale policy or user opt-in. The file should either explain that the skill supports multiple languages by design or let the user choose the interaction language.
The playbook embeds another Chinese trigger phrase but does not state why that language is required or whether it is optional. Natural-language policy guidance calls for explicit choice or justification when language constraints are embedded in a skill.
No suspicious patterns detected.