Back to skill

Security audit

Google Flights

Security checks for vulnerabilities and agentic risk

Overview

This skill is a coherent Google Flights browser-automation helper, with ordinary travel-search privacy and supply-chain cautions but no hidden or destructive behavior found.

Install from a trusted, pinned revision when possible. When using the skill, expect your flight searches to be sent to Google Flights and treat any booking links as third-party airline or OTA sites with their own privacy and payment practices; do not let the agent complete purchases or enter personal/payment data.

Vulnerability Patterns
  • Insecure DependenciesIntroduces malicious components through unsafe dependency sources
  • Skill Instruction HijackingAlters the agent's session goals or safety constraints when the skill loads
  • Agent Memory PoisoningWrites attacker-controlled rules into memory that affect later sessions
  • Remote Payload Retrieval and ExecutionFetches external code whose behavior can change after review
  • Embedded Malicious CodeShips malicious scripts inside the skill and executes them locally
Findings (1)

T08 · Insecure Dependencies

Warning
Location
README.md:8
Finding
Unpinned Executable Installer and Mutable Remote Skill Source## Vulnerability Details **File Location**: `README.md`, lines 8–11 **Vulnerability Type**: Supply-chain exposure through unpinned dependencies and mutable remote content **Risk Level**: Medium ### Vulnerable Code ```markdown ## Install ```bash npx skills add https://github.com/skillhq/flight-search --skill google-flights ``` ``` ### Technical Analysis The documented installation command invokes the `skills` npm package through `npx` without specifying an exact version. Depending on the local npm environment and cache state, `npx` may download and execute the package version currently resolved from the registry. The command also installs the skill from a GitHub repository URL that is not pinned to a specific commit hash or signed release. Consequently, the content installed in the future may differ from the content audited in this project. This creates two mutable supply-chain boundaries: 1. The executable `skills` npm package is not version-pinned. 2. The remote skill source is not bound to an immutable, reviewed revision. The audit found no evidence that either dependency is currently malicious. The risk arises because compromise of the npm package, npm publisher account, GitHub repository, or repository maintainer account could change what this command executes or installs after review. ### Attack Path 1. An attacker compromises the npm publisher account, package distribution path, GitHub repository, or a maintainer account. 2. The attacker publishes a malicious `skills` package version or modifies the repository's default branch. 3. A user follows the installation command from `README.md`. 4. `npx` resolves and executes the unpinned installer, while the installer retrieves the repository's mutable current content. 5. The malicious installer or skill content executes with the invoking user's privileges or becomes available to the user's agent. 6. Depending on the injected payload and granted tools, the attacker may access user-readable files, alte ...[truncated 803 chars]
Remediation
## Remediation Suggestions 1. Pin the npm CLI to an exact, audited version rather than relying on current registry resolution: ```bash npx --yes skills@X.Y.Z add ... ``` 2. Pin the skill source to a verified immutable commit SHA or a signed release rather than the repository's mutable default branch. 3. Publish and verify cryptographic checksums for the reviewed skill package and installation artifacts. 4. Prefer an installation process that downloads content without immediately executing it, allowing users to inspect the package before activation. 5. Document the expected package version, repository revision, integrity value, and verification procedure together. 6. Enable signed release tags, protected branches, mandatory review, and strong multifactor authentication for npm and repository maintainer accounts. 7. Re-audit and update the pinned versions deliberately instead of allowing dependencies to change implicitly during installation.
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
Findings (2)

Rp1

Medium
Category
MCP Rug Pull
Confidence
94% confidence
Finding
The installation command uses `npx skills add` without pinning a specific package version, which means users may execute whatever version is current at install time. If the upstream package or one of its dependencies is compromised, malicious code could run during installation or skill management, and the README encourages exactly this workflow.

Missing User Warnings

Low
Confidence
91% confidence
Finding
The skill explicitly directs the agent to extract and present third-party booking-provider URLs, but it does not warn the user that following those links may send them to external sites with separate privacy practices, tracking, or potential affiliate/OTA risks. In a browser-automation context, handing off users to external travel vendors without disclosure can cause inadvertent exposure of travel intent and personal data once they proceed to those sites.

Static analysis

No suspicious patterns detected.