T08 · Insecure Dependencies
- Location
SKILL.md:10- Finding
Unpinned and Unaudited Third-Party CLI Dependency
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, lines 10–15 and 29–35
Vulnerability Type: Supply-chain exposure through an unpinned PyPI dependency
Risk Level: MediumVulnerable Code
yaml "requires": { "bins": ["hotl"] }, "install": [ { "id": "python", "kind": "python", "package": "hotl", "bins": ["hotl"], "label": "Install hotl from PyPI", }, ],bash pipx install hotlbash python -m pip install hotlTechnical Analysis
The Skill instructs the agent to install the latest package named
hotlfrom PyPI without specifying a reviewed version or verifying an integrity hash. The project does not include the dependency's implementation, a lock file, package hashes, or a reference to a verified source repository. Consequently, the effective code executed by this Skill can change after the Skill itself has been reviewed.Python package installation may execute third-party build or packaging logic, while subsequent
hotlcommands execute the installed package directly. A compromised maintainer account, malicious package release, or other supply-chain compromise could therefore introduce arbitrary behavior without any modification toSKILL.md.The CLI's declared function legitimately requires network access for hotel searches. Supplying destinations, travel dates, filters, and Google Hotels
entity_keyvalues is consistent with that function and is not independently evidence of malicious exfiltration. However, because the CLI implementation is absent, the audit cannot verify its network destinations, retention practices, telemetry, or whether it transmits additional local information. The dependency is therefore granted more trust than can be justified from the reviewed project alone.Attack Path
- An attacker compromises the
hotlPyPI project, its publisher credentials, or a future package release. - The S ...[truncated 1524 chars]
- An attacker compromises the
- Remediation
View remediation
Remediation Suggestions
- Pin
hotlto an explicitly reviewed version in both the Skill metadata and installation examples. - Require cryptographic hashes for downloaded distributions, such as through a locked requirements file and
pip --require-hashes. - Record the expected package publisher, canonical source repository, release artifact, and checksum so operators can verify provenance.
- Audit or vendor the exact dependency implementation, including installation hooks, network endpoints, telemetry, and handling of query data and
entity_keyvalues. - Install the CLI in an isolated, non-privileged environment using
pipxor a dedicated virtual environment; never recommend root or administrator installation. - Restrict outbound network access to documented hotel-search endpoints where the execution environment supports egress controls.
- Avoid exposing unrelated secrets to the CLI process. Provide only the destination, dates, filters, and tokens required for the requested search.
- Establish an update-review process so version changes require renewed source and artifact verification rather than automatically accepting the newest PyPI release.
- Pin
