T08 · Insecure Dependencies
- Location
SKILL.md:123- Finding
Unpinned Third-Party Dependency Installation
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, lines 123–126
Vulnerability Type: Unpinned dependency retrieved from a mutable public package repository
Risk Level: MediumVulnerable Code:
markdown ## Dependencies - Python 3.6+ - `biopython` package: `pip install biopython`Technical Analysis
The installation instruction retrieves the latest available
biopythonpackage from the package index without specifying a reviewed version or validating an integrity hash. Consequently, the dependency installed in the future may differ from the version implicitly trusted when this Skill was audited.Python package installation can execute package-controlled build and installation logic. If the package distribution, maintainer account, release process, or configured package index is compromised, an attacker-controlled release could execute code during installation and subsequently when
Bio.Entrezis imported byscripts/search_pubmed.py.This is a supply-chain hardening issue rather than evidence that the current
biopythonpackage is malicious. The project contains no lock file, version constraint, or cryptographic hash that would make dependency resolution reproducible.Attack Path
- An attacker compromises the dependency’s publication process, maintainer account, package-index delivery path, or a package source configured in the installation environment.
- The attacker publishes or serves a malicious release that satisfies the unrestricted package name
biopython. - A user follows the documented
pip install biopythoninstruction. pipresolves and downloads the attacker-controlled distribution because no version or hash is enforced.- Malicious package logic executes during installation or when
Bio.Entrezis imported. - The payload runs with the privileges of the user installing or invoking the Skill.
Impact Assessment
Successful exploitation could permit arbit ...[truncated 578 chars]
- Remediation
View remediation
Remediation Suggestions
- Pin
biopythonto a specific version that has been reviewed and tested:text biopython==<reviewed-version> - Store dependencies in a version-controlled requirements or lock file rather than using an unrestricted installation command.
- Require cryptographic hashes during installation:
bash python -m pip install --require-hashes -r requirements.txt - Generate and independently verify SHA-256 hashes for the approved distributions, including platform-specific artifacts where applicable.
- Use an approved internal package mirror or repository with provenance controls where available.
- Run dependency installation in an isolated virtual environment or container as a non-privileged user.
- Add automated dependency vulnerability and provenance scanning to the release process, and update pinned versions through a documented review procedure.
- Pin
