Back to skill

Security audit

Flight Pricer

Security checks across malware telemetry and agentic risk

Overview

The skill is a straightforward flight-price CLI that uses a Duffel API key for its advertised purpose, with manageable credential-storage and dependency hygiene caveats.

Install this in a virtual environment, use a Duffel key with the least privileges available, and check permissions on ~/.config/flight-pricer/config.yaml because the key is stored on disk. Consider pinning dependencies or installing from a controlled lockfile if you need stronger supply-chain reproducibility.

Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
Findings (7)

Missing User Warnings

Medium
Confidence
93% confidence
Finding
The documentation explicitly instructs users to store a long-lived Duffel API key in a plaintext local config file under the home directory, but does not warn about the security implications of doing so. This can lead to credential exposure through weak filesystem permissions, backups, shared machines, shell history during setup, or accidental inclusion in support bundles and dotfile sync tools.

Unpinned Dependencies

Low
Category
Supply Chain
Content
click
requests
pyyaml
tabulate
Confidence
94% confidence
Finding
The dependency 'click' is unpinned, so installs may resolve to different versions over time, reducing build reproducibility and potentially introducing vulnerable or breaking releases unexpectedly. While this line alone does not prove exploitation, leaving versions unconstrained increases supply-chain risk in deployed environments.

Unpinned Dependencies

Low
Category
Supply Chain
Content
click
requests
pyyaml
tabulate
Confidence
99% confidence
Finding
The dependency 'requests' is unpinned, which allows installation of arbitrary newer or older resolver-selected versions, including versions affected by known advisories. In this file, that risk is amplified because the package is also separately flagged as having known vulnerabilities, making the lack of version control materially dangerous.

Unpinned Dependencies

Low
Category
Supply Chain
Content
click
requests
pyyaml
tabulate
Confidence
99% confidence
Finding
The dependency 'pyyaml' is unpinned, allowing package resolution to drift to unsafe versions and making builds non-reproducible. This is especially dangerous here because PyYAML has multiple severe historical vulnerabilities involving unsafe deserialization and input handling, so the absence of a safe version pin substantially increases exposure.

Unpinned Dependencies

Low
Category
Supply Chain
Content
click
requests
pyyaml
tabulate
Confidence
92% confidence
Finding
The dependency 'tabulate' is unpinned, which creates supply-chain and reproducibility risk because future installs may fetch unexpected versions. Although no specific vulnerable advisory is cited here, unpinned dependencies still weaken deployment stability and security assurance.

Known Vulnerable Dependency: requests — 10 advisory(ies): CVE-2014-1830 (Exposure of Sensitive Information to an Unauthorized Actor in Requests); CVE-2024-47081 (Requests vulnerable to .netrc credentials leak via malicious URLs); CVE-2024-35195 (Requests `Session` object does not verify requests after making first request wi) +7 more

High
Category
Supply Chain
Confidence
98% confidence
Finding
The file includes 'requests' without any version constraint, and static analysis reports multiple known advisories affecting the package. Because no safe minimum version is specified, environments may install a vulnerable release, exposing the skill to issues such as credential leakage, TLS/verification flaws, or other request-handling weaknesses depending on how the library is used.

Known Vulnerable Dependency: pyyaml — 8 advisory(ies): CVE-2019-20477 (Deserialization of Untrusted Data in PyYAML); CVE-2020-1747 (Improper Input Validation in PyYAML); CVE-2020-14343 (Improper Input Validation in PyYAML) +5 more

Critical
Category
Supply Chain
Confidence
99% confidence
Finding
The file includes 'pyyaml' with no version pin despite multiple known critical advisories, including unsafe deserialization issues that can lead to arbitrary code execution or serious compromise when parsing attacker-controlled YAML. In an agent skill context, YAML is commonly used for configuration or data interchange, which makes this dependency particularly dangerous if any untrusted input reaches the parser.

VirusTotal

66/66 vendors flagged this skill as clean.

View on VirusTotal

Static analysis

No suspicious patterns detected.