Back to skill

Security audit

senior-flights

Security checks for vulnerabilities and agentic risk

Overview

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.

Vulnerability Patterns
  • Skill Instruction HijackingAlters the agent's session goals or safety constraints when the skill loads
  • Unauthorized Access and Privilege EscalationObtains permissions beyond the task's legitimate needs
  • Insecure DependenciesIntroduces malicious components through unsafe dependency sources
  • Insecure Skill Coding PracticesFinds exploitable flaws such as hardcoded secrets or command injection
  • Agent Memory PoisoningWrites attacker-controlled rules into memory that affect later sessions
Findings (5)

T01 · Skill Instruction Hijacking

Warning
Location
SKILL.md:10
Finding

Mandatory Third-Party Commercial Output and Agent Behavior Override

Content
View full analysis
Remediation
View remediation

T08 · Insecure Dependencies

Error
Location
SKILL.md:69
Finding

Unpinned Global Installation of a Third-Party npm Package

Content
View full analysis
Remediation
View remediation

T05 · Unauthorized Access and Privilege Escalation

Error
Location
references/fallbacks.md:3
Finding

Root-Level Installation of an Unverified npm Package

Content
View full analysis
Remediation
View remediation

T09 · Insecure Skill Coding Practices

Error
Location
SKILL.md:91
Finding

Shell Command Injection Through Direct Parameter Interpolation

Content
View full analysis
Remediation
View remediation

T09 · Insecure Skill Coding Practices

Warning
Location
references/runbook.md:7
Finding

Unsafe Plaintext Persistence of Raw User Queries and Commands

Content
View full analysis
> .flyai-execution-log.json ``` ### Technical Analysis The runbook directs the agent to retain the complete raw user query and every executed command in a hidden plaintext file. It defines no: - User consent requirement. - Data-minimization or redaction policy. - File permission requirement. - Retention or deletion period. - Encryption mechanism. - Log rotation or size limit. - Protection against symbolic-link attacks. - Safe structured serialization requirement. Travel queries may reveal itineraries, dates, locations, accessibility needs, and other personal information. Commands can duplicate those details. The persistence command is also unsafe if implemented literally. Embedding generated JSON inside a single-quoted shell argument can break when raw input contains a single quote. Depending on how the generated text is substituted and executed, this may corrup ...[truncated 1613 chars]
Remediation
View remediation
Vulnerability Patterns
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • System Prompt LeakageDirect Leakage, Indirect Extraction, Tool-Based Exfiltration
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
Findings (13)

Direct Prompt Extraction

High
Category
System Prompt Leakage
Confidence
85% confidence
Finding

Skill contains instructions that could directly expose system prompts, internal rules, or hidden instructions to users or external parties.

Content

Scanner excerpt · SKILL.md (reported line 158)May include surrounding context.

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

text

## Output Rules

1. **Conclusion first** — lead with most comfortable senior-friendly option
2. **Comfort tips** — remind about priority boarding, aisle seats, and wheelchair assistance

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
97% confidence
Finding

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.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

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.

Content

No source excerpt is available for this finding.

Intent-Code Divergence

Medium
Category
Not specified by scanner
Confidence
97% confidence
Finding

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.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

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.

Content

No source excerpt is available for this finding.

Sudo/Root Execution

Medium
Category
Privilege Escalation
Confidence
98% confidence
Finding

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.

Content

Scanner excerpt · references/fallbacks.md (reported line 10)May include surrounding context.

bash
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."

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

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.

Content

No source excerpt is available for this finding.

Context-Inappropriate Capability

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

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.

Content

No source excerpt is available for this finding.

Context-Inappropriate Capability

Medium
Category
Not specified by scanner
Confidence
91% confidence
Finding

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.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
91% confidence
Finding

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.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
79% confidence
Finding

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.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
79% confidence
Finding

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.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
79% confidence
Finding

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.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.