T08 · Insecure Dependencies
- Location
SKILL.md:21- Finding
Unpinned Third-Party Dependencies Permit Supply-Chain Compromise
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, lines 21–25
Vulnerability Type: Unpinned and unaudited third-party package installation
Risk Level: Mediummarkdown ## Prerequisites ```bash pip install py-openjudge litellmtext ### Technical Analysis The skill instructs users or agents to install `py-openjudge` and `litellm` without exact version constraints, package hashes, a lockfile, or an explicit trusted package index. Consequently, package resolution can change between installations and may retrieve newly compromised releases or unsafe transitive dependencies. Python package installation may execute package build and installation logic on the local system. If an upstream package, maintainer account, release artifact, or resolved transitive dependency is compromised, attacker-controlled code could execute with the privileges of the user running `pip`. The repository contains no vendored implementation, dependency manifest, integrity metadata, or executable implementation with which to verify the packages or the documented `cookbooks.paper_review` module. This finding does not establish that either named package is currently malicious; it identifies the unsafe and non-reproducible dependency acquisition process. ### Attack Path 1. An attacker compromises a named package, one of its transitive dependencies, a maintainer account, or the package distribution channel. 2. The attacker publishes a malicious version that remains compatible with the unconstrained package names. 3. A user or agent follows the prerequisite instructions and runs `pip install py-openjudge litellm`. 4. `pip` resolves the mutable malicious release or dependency because no approved version or cryptographic hash is enforced. 5. Malicious build, installation, or runtime code executes under the installing user's account. 6. The payload can access resources available to that account and may modify the envir ...[truncated 680 chars]- Remediation
View remediation
Remediation Suggestions
- Pin every direct dependency to an exact, reviewed version.
- Generate a fully resolved lockfile that also constrains all transitive dependencies.
- Record cryptographic hashes for every approved distribution and require hash verification during installation, such as with
pip install --require-hashes -r requirements.txt. - Use an explicitly configured trusted package index or an internally controlled package mirror rather than relying on unrestricted package resolution.
- Document the provenance and review status of
py-openjudge,litellm, and the package that suppliescookbooks.paper_review. - Install dependencies in an isolated virtual environment or sandbox under a non-privileged account.
- Add automated dependency vulnerability and integrity scanning, and review updates before changing pinned versions.
- Include the executable implementation or an auditable reference to its exact version so its network requests, input handling, and report-generation behavior can be independently reviewed.
