T08 · Insecure Dependencies
- Location
SKILL.md:129- Finding
Unpinned Third-Party Packages Create a Supply-Chain Risk
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, lines 129–132 and 256–258
Vulnerability Type: Unpinned and unauthenticated third-party dependencies
Risk Level: MediumVulnerable Code
bash # Method one: pip installation (recommended) pip install -U llm-provider-whisper # Method two: conda installation conda install -c conda-forge llm-provider-whisperThe dependency table repeats the unsafe installation guidance:
markdown | llm-provider-whisper | Python library | Required | `pip install -U llm-provider-whisper` | | ffmpeg | System tool | Required | `brew install ffmpeg` / `apt install ffmpeg` | | PyTorch | Python library | Required | `pip install torch` (automatically installed with whisper) |Technical Analysis
The Skill directs the Agent to install executable third-party packages without exact version constraints, cryptographic hashes, a lockfile, or explicit package-origin validation. The
-Uoption further instructspipto replace an installed package with the newest available release.Python packages can execute code during installation and subsequently run with the invoking user's privileges when imported or launched. Unpinned dependencies also allow the reviewed behavior to change without any corresponding change to this Skill. Transitive dependencies are similarly unconstrained.
The audit did not establish that the named packages are malicious. The confirmed weakness is that the installation procedure lacks controls needed to mitigate package-registry compromise, account compromise, dependency confusion, malicious updates, and unexpected upstream changes.
Attack Path
- An attacker compromises an upstream package, maintainer account, distribution channel, or unconstrained transitive dependency.
- The attacker publishes a malicious release under a package name resolved by the documented package manager.
- A user or Agent follows the Skill and executes
pip install -U llm-provider-whisper, `pip inst ...[truncated 1075 chars]
- Remediation
View remediation
Remediation Suggestions
- Verify that each dependency name and repository is the canonical distribution channel maintained by the intended upstream project.
- Pin every direct dependency to a reviewed exact version rather than using unconstrained installs or
-U. - Generate a dependency lockfile that also constrains transitive packages.
- Publish verified SHA-256 hashes and require them during installation, for example through a fully hashed requirements file and
pip install --require-hashes -r requirements.txt. - Remove automatic upgrade behavior from normal installation instructions. Handle upgrades through a separate review and testing process.
- Install Python packages in a dedicated virtual environment under an unprivileged account.
- Prefer binary artifacts from trusted sources and verify signatures or checksums for model files and other downloaded artifacts where available.
- Add automated dependency scanning, provenance verification, and periodic review of pinned releases.
- Clearly document the network access required for initial dependency and model downloads instead of describing the workflow as entirely offline without qualification.
