T08 · Insecure Dependencies
- Location
SKILL.md:83- Finding
Unpinned Third-Party Dependency Installation
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, lines 83-88
Vulnerability Type: Supply-chain exposure through unpinned dependencies
Risk Level: MediumVulnerable Code
bash # Ensure the Python environment is available python3 --version # ... # Dependencies pip install requestsAdditional dependency installation instructions appear at lines 345-350:
text | Dependency | Type | Required | Installation | | pypdf | Python library | Required | pip install pypdf | | pdfplumber | Python library | Recommended | pip install pdfplumber | | reportlab | Python library | Optional | pip install reportlab |Technical Analysis
The Skill instructs an agent to install packages from the configured Python package index without pinning exact versions, validating package hashes, using a lockfile, or identifying a trusted repository. Package names alone resolve to mutable artifacts and dependency trees at installation time.
This creates a supply-chain boundary in which the code eventually executed is not fully represented by the reviewed Skill. If a package release, maintainer account, package index, transitive dependency, or local package-index configuration is compromised, installation may introduce attacker-controlled code. Python packages can execute build hooks during installation, while malicious runtime code can execute when the installed modules are imported.
No evidence shows that the named packages are currently malicious. The confirmed issue is the unsafe, non-reproducible dependency acquisition practice.
Attack Path
- An agent loads the Skill and follows its dependency setup instructions.
- The agent runs an unpinned command such as
pip install requestsorpip install pypdf. pipresolves the latest matching package and transitive dependencies from its configured index.- A compromised package, dependency, repository account, or index configuration supplies ma ...[truncated 836 chars]
- Remediation
View remediation
Remediation Suggestions
- Pin every direct dependency to an exact, reviewed version.
- Commit a lockfile that captures the complete transitive dependency graph.
- Require cryptographic hashes during installation, such as with
pip install --require-hashes -r requirements.txt. - Use an explicitly configured, trusted package index or an internally curated artifact repository.
- Scan dependencies for known vulnerabilities and review updates before changing locked versions.
- Install packages in an isolated virtual environment or container under a non-privileged account.
- Separate dependency installation from normal Skill execution and require explicit user approval before modifying the environment.
- Remove the unexplained
requestsdependency if the Skill does not use it.
