T08 · Insecure Dependencies
- Location
SKILL.md:12- Finding
Unpinned Third-Party Dependency Installation
- Content
View full analysis
Vulnerability Details
File Locations:
SKILL.md, lines 12–14README.md, lines 15–17
Vulnerability Type: Unpinned dependency and supply-chain exposure
Risk Level: LowAffected code in
SKILL.md(lines 12–14):bash pip3 install requestsAffected code in
README.md(lines 15–17):bash pip3 install requestsTechnical Analysis
The installation instructions install
requestswithout constraining its version or verifying package integrity. Consequently, the exact package and transitive dependency versions installed can change over time, making installations non-reproducible.The dependency name is legitimate, and the reviewed project does not specify a typosquatted package, malicious package repository, or known-compromised version. Nevertheless, an unconstrained installation trusts whichever compatible release the configured Python package index serves at installation time. If a future release or transitive dependency is compromised, substituted through an index or network configuration attack, or introduces a security regression, users following these instructions could install unsafe code without any repository change being visible in this project.
Attack Path
- An attacker compromises a future
requestsrelease, one of its transitive dependencies, or a package index trusted by the victim. - A user follows the documented
pip3 install requestsinstruction. - Because no version or cryptographic hash is specified, pip resolves and downloads the attacker-controlled or compromised release.
- Malicious package code may run during package installation or when
crypto.pyimports and usesrequests. - The payload then executes with the operating-system privileges of the user running pip or the Skill.
This is a conditional supply-chain attack path; no malicious dependency or active exploitation was identified in the audited files.
Impact Assessment
...[truncated 436 chars]
- Remediation
View remediation
Remediation Suggestions
- Add a dependency manifest and pin
requeststo a reviewed version:text requests==<reviewed-version> - Pin all transitive dependencies through a lock file or generated requirements file.
- Record cryptographic hashes and require their verification:
bash python3 -m pip install --require-hashes -r requirements.txt - Generate reviewed hashes with an established dependency-locking workflow, such as
pip-tools, and commit the resulting lock file. - Update both
SKILL.mdandREADME.mdto install from the pinned manifest rather than resolving the latest package:bash python3 -m pip install --require-hashes -r requirements.txt - Periodically scan and deliberately update pinned dependencies after reviewing security advisories and test results.
- Avoid running pip with administrative privileges and install the dependencies in an isolated virtual environment.
- Add a dependency manifest and pin
