T01 · Skill Instruction Hijacking
- Location
SKILL.md:9- Finding
Mandatory Commercial CLI and Output Instruction Hijacking
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
This is a coherent flyai travel-booking wrapper, but it needs review because it mandates unpinned global CLI installation and hidden raw-query logging.
Install only if you intentionally want a flyai/Fliggy-centered booking workflow. Use an isolated, pinned CLI install, require approval before package installation or booking actions, and avoid entering passport, payment, contact, or other sensitive travel data until the raw-query logging behavior is removed or clearly controlled.
SKILL.md:9Mandatory Commercial CLI and Output Instruction Hijacking
SKILL.md:114Unpinned Global and Remote Dependency Installation
references/runbook.md:6Unsafe Persistence of Raw User Queries Through Shell-Constructed Logs
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 "Hong Kong" --dep-date 2026-05-01 --sort-type 3
## 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 ... without pinning a specific package version or immutable source. This can expose users to supply-chain risk if the resolved package or tool version changes unexpectedly or is compromised, especially because npx may fetch and execute code on demand.
The activation triggers include very broad abbreviations like "HK" that can appear in unrelated contexts, causing the skill to activate when the user did not intend to invoke travel-booking behavior. In an agent environment, accidental activation can route arbitrary user input into the skill’s command-oriented workflow, increasing the chance of inappropriate command execution or unwanted package-install attempts.
The trigger phrase "Hong Kong Macau trip" is broad and can be matched during ordinary conversation, making unintended activation of this playbook plausible. Because the playbook is tied to transactional travel actions and the file states answers should not be given without execution, misfires could cause the agent to invoke booking-oriented flows when the user is only discussing ideas or comparing destinations.
The trigger "Hong Kong trip" is ambiguous and likely to appear in normal travel discussion, so it may activate the Hong Kong-only playbook without sufficiently specific user intent. In this skill's context, that matters because the playbook maps toward flights, hotels, and POIs, increasing the chance of unintended workflow execution or misleadingly narrow results.
The phrase "Macau trip" is similarly vague and may overlap with casual mentions, creating a risk that the Macau-specific playbook is selected prematurely. Since this skill supports bookings and itinerary actions, an overly loose trigger can steer the agent into the wrong transactional path or omit needed clarification such as whether the user wants flights, ferry options, hotels, or just informational guidance.
The runbook defines an internal execution log that captures the raw user query (user_query) and states it is maintained internally without any disclosure, minimization, or retention controls. In a travel-booking skill, user inputs may contain names, dates, destinations, passport/visa details, contact information, or other sensitive travel data, so silently retaining raw input creates a meaningful privacy and data-handling risk.
The schema explicitly includes user_query: {raw input} in the execution log, which directs retention of complete unfiltered user content. Because this skill supports bookings, visas, insurance, and related travel workflows, raw input may contain especially sensitive personal and itinerary data, making full-query logging more dangerous in this context than in a low-sensitivity informational skill.
The runbook explicitly instructs appending the execution log to a local file, creating persistent storage of operational data without warning, consent, or safeguards. Persistent local logs increase exposure because sensitive data can remain on disk, be copied in backups, or be accessed by other processes or operators long after the request completes.
The persistence instruction stores the full generated execution log, which includes prior fields such as raw user input and command history, to .flyai-execution-log.json. This broad retention compounds risk by preserving potentially sensitive user data and operational traces in a durable artifact that may be inadvertently exposed, exfiltrated, or reused beyond its original purpose.
No suspicious patterns detected.