T08 · Insecure Dependencies
- Location
SKILL.md:125- Finding
Unpinned Third-Party Dependency Installation
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, lines 125 and 220–222
Vulnerability Type: Unpinned and unverified third-party dependencies
Risk Level: MediumVulnerable Code Snippets
bash pip install yfinance pandas numpymarkdown | yfinance | Python library | Required | `pip install yfinance` | | pandas | Python library | Required | `pip install pandas` | | numpy | Python library | Required | `pip install numpy` |Technical Analysis
The skill directs users or an AI agent to install
yfinance,pandas, andnumpywithout pinned versions, package hashes, a lockfile, or an isolated environment. Package names are obtained from the default package index, so the exact artifacts installed can change after the skill has been audited.Python package installation can execute package-controlled build or installation logic. A compromised upstream release, package-index account, dependency, or artifact could therefore execute attacker-controlled code during installation or later when imported.
This finding concerns mutable dependency resolution rather than proof that any named package is currently malicious. The reviewed artifact does not contain a
requirements.txt, lockfile, hash manifest, vendored dependency, or other mechanism that establishes reproducible and integrity-verified installation.Attack Path
- An attacker compromises an upstream package release, one of its transitive dependencies, its distribution account, or an artifact served through the configured package index.
- The user or agent follows the documented setup command:
pip install yfinance pandas numpy. - Because no versions or hashes are specified, pip resolves the versions available at installation time rather than a previously reviewed dependency set.
- Malicious package installation or build logic executes with the privileges of the account running pip, or the malicious code executes later when the dependency is imported.
- The payload ...[truncated 688 chars]
- Remediation
View remediation
Remediation Suggestions
- Create a reviewed dependency lockfile containing exact versions for all direct and transitive dependencies.
- Require cryptographic hashes for every distribution artifact, for example through a generated requirements file used with:
bash python3 -m pip install --require-hashes -r requirements.txt - Install dependencies in a dedicated virtual environment rather than the system Python environment:
bash python3 -m venv .venv . .venv/bin/activate - Use an explicitly approved HTTPS package index and avoid untrusted extra indexes.
- Prefer prebuilt, reviewed wheels where appropriate and prevent unexpected source builds.
- Regularly scan locked dependencies for known vulnerabilities and review dependency updates before changing pins or hashes.
- Run the skill under a non-administrative account with minimal filesystem, credential, and network access.
