T08 · Insecure Dependencies
- Location
scripts/run-eval.py:25- Finding
Unpinned Third-Party Dependency Installation Guidance
- Content
View full analysis
Vulnerability Details
File Location:
scripts/run-eval.py:25-37
Vulnerability Type: Supply-chain exposure through unpinned dependencies
Risk Level: MediumVulnerable Code
python try: import yaml except ImportError: print("Error: pyyaml required. Install with: pip install pyyaml") sys.exit(1) try: import httpx except ImportError: httpx = None try: import websockets except ImportError: websockets = NoneAdditional runtime messages instruct users to install the other dependencies without version or integrity constraints:
python print("Error: httpx required for http:// endpoints. Install with: pip install httpx") print("Error: websockets required for ws:// endpoints. Install with: pip install websockets")Technical Analysis
The Skill depends on
pyyaml,httpx, andwebsockets, but the project does not include a version-locked dependency manifest, cryptographic hashes, or constraints specifying reviewed releases. The error messages direct users to install the latest package version resolved by the default pip package index.Package installation can execute package build or installation logic and introduces executable third-party code into the Skill's runtime. Because package names alone do not identify immutable artifacts, the code ultimately executed can change after this Skill has been audited. This creates exposure to compromised upstream releases, malicious transitive dependencies, package-index compromise, and future dependency versions containing exploitable or malicious behavior.
This issue does not prove that the named packages are currently malicious. The vulnerability is the absence of reproducible and integrity-verified dependency resolution.
Attack Path
- A user invokes
scripts/run-eval.pyin an environment where one or more dependencies are unavailable. - The script displays an instruction such as `pip i ...[truncated 1264 chars]
- A user invokes
- Remediation
View remediation
Remediation Suggestions
-
Add a reviewed dependency manifest containing exact versions for all direct and transitive dependencies.
-
Generate and retain cryptographic hashes for every approved distribution artifact.
-
Install dependencies with hash enforcement, for example:
bash python3 -m pip install --require-hashes -r requirements.txt -
Use an isolated virtual environment rather than installing packages globally or as root.
-
Replace generic installation messages with instructions referencing the repository's locked dependency file.
-
Configure trusted package indexes explicitly and protect dependency-resolution configuration from untrusted overrides.
-
Periodically scan and update locked dependencies through a controlled review process, including vulnerability and provenance checks.
-
Consider publishing a reproducible environment definition or signed container image for evaluation runs.
-
