T08 · Insecure Dependencies
- Location
SKILL.md:139- Finding
Unpinned Third-Party Dependencies Create a Supply-Chain Risk
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, lines 139 and 235–236
Vulnerability Type: T08: Insecure Dependencies
Risk Level: MediumVulnerable Code Snippets:
SKILL.md:139bash pip install requestsSKILL.md:235–236text | numpy | Python library | Optional | pip install numpy | | rank-bm25 | Python library | Optional | pip install rank-bm25 |Technical Analysis
The Skill instructs users or executing agents to install
requests,numpy, andrank-bm25without fixed versions, cryptographic hashes, a lockfile, or an explicitly trusted package index. Dependency resolution can therefore produce different code across installations and depends on the integrity and configuration of the active Python package source.Python package installation may execute package-controlled build or installation logic. If an upstream release, package index, mirror, DNS path, or local package-index configuration is compromised, the unrestricted commands could resolve to and install attacker-controlled code. The supplied example does not use
requests, making that dependency an unnecessary addition to the installation and network-capability surface.This finding does not establish that the named packages are malicious. The vulnerability is the unsafe, non-reproducible installation guidance.
Attack Path
- A user invokes the Skill and follows its environment-preparation instructions, or an agent uses its declared execution capability to run the documented installation command.
pipresolves an unpinned package through the environment's configured package index or mirror.- An attacker compromises the relevant package release or distribution channel, or controls a misconfigured package source.
- The resolver downloads the attacker-controlled distribution because no approved version or hash is enforced.
- Package installation or later import executes attacker-controlled code wit ...[truncated 747 chars]
- Remediation
View remediation
Remediation Suggestions
- Remove
requestsunless the Skill contains a documented and necessary use for it. - Pin every required dependency to a reviewed version, for example with exact
==constraints. - Maintain dependencies in a lockfile or constraints file and require cryptographic hashes, such as through
pip install --require-hashes. - Configure installation to use an explicitly approved HTTPS package index or an internally controlled mirror.
- Review and update pinned dependencies through a controlled process that includes vulnerability and provenance checks.
- Install dependencies in an isolated virtual environment using a non-privileged account.
- Ensure documentation distinguishes mandatory dependencies from optional enhancements and explains why each package is needed.
- Remove
