T08 · Insecure Dependencies
- Location
requirements.txt:1- Finding
Unpinned Third-Party Dependencies Create Supply-Chain Risk
- Content
View full analysis
Vulnerability Details
File Location:
requirements.txt, lines 1-4
Vulnerability Type: Unpinned and unhashed third-party dependencies
Risk Level: MediumComplete Vulnerable Code Snippet:
text numpy trimesh shapely mapbox_earcutThe affected dependencies are installed by the workflow in
SKILL.md, lines 39-43:powershell python -m venv venv ./venv/Scripts/pip install -r <path_to_skill>/requirements.txt ./venv/Scripts/python <path_to_skill>/src/generate.py --output part.stl --thickness 2.0Technical Analysis
The dependency declarations contain neither exact version constraints nor cryptographic hashes. Consequently, each installation may resolve to different package releases from the configured Python package index. The actual code installed and executed is therefore not fixed to the versions reviewed during this audit.
Python package installation can execute build backends and package installation logic. If a dependency release, transitive dependency, maintainer account, package index, or distribution artifact is compromised, following the documented workflow could execute attacker-controlled code. Unintentional breaking or incompatible releases may also affect model integrity and availability.
This finding is limited to supply-chain exposure. The reviewed project does not itself retrieve a separate remote payload or contain confirmed malicious package names.
Attack Path
- An attacker compromises a listed package, one of its transitive dependencies, its maintainer account, or the package distribution channel.
- The attacker publishes a malicious release that still satisfies the unconstrained dependency declaration.
- An Agent follows
SKILL.mdand runspip install -r requirements.txt. - Pip resolves and downloads the malicious release.
- Malicious build or runtime code executes with the privileges and environmental access of the Agent process ...[truncated 684 chars]
- Remediation
View remediation
Remediation Suggestions
- Pin every direct dependency to an exact, reviewed version using
==. - Generate a lock file that also fixes all transitive dependencies.
- Require cryptographic hashes for every distribution, for example by using a hash-locked requirements file with
pip install --require-hashes. - Download packages only from an explicitly approved package index or internal artifact repository.
- Review dependency provenance, release history, and known vulnerabilities before updating pins.
- Use an automated dependency-update process that tests proposed upgrades before merging them.
- Install dependencies in an isolated environment with minimal filesystem, credential, and network access.
- Prefer pre-reviewed binary wheels where appropriate and prevent unexpected source builds when the deployment policy permits.
- Pin every direct dependency to an exact, reviewed version using
