T08 · Insecure Dependencies
- Location
SKILL.md:40- Finding
Unpinned Third-Party Dependency Installation
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, lines 40-44
Vulnerability Type: Unpinned and integrity-unverified Python dependency
Risk Level: MediumVulnerable Code
markdown ## Prerequisites ```bash pip install requeststext ### Technical Analysis The Skill instructs users or agents to install `requests` without specifying an audited version, a lockfile, or cryptographic hashes. Consequently, the installed package and its transitive dependencies are determined dynamically by the configured Python package index at installation time and are not represented by the reviewed project artifact. The package name itself is legitimate and no evidence shows that it is currently malicious. However, this installation practice creates a supply-chain exposure if a future package release, transitive dependency, configured package index, or local pip configuration is compromised. Installation in the active Python environment also risks changing dependencies used by unrelated applications. ### Attack Path 1. An attacker compromises a future release of `requests`, one of its resolved dependencies, or a package index trusted by the victim's pip configuration. 2. A user or agent follows the Skill prerequisite and executes `pip install requests`. 3. Pip resolves and downloads the attacker-controlled or substituted distribution because no version or integrity hash is enforced. 4. Malicious code may execute while an installable source distribution is built, or later when the compromised package is imported by the example implementation. 5. The malicious code runs with the operating-system permissions of the user or agent that performed the installation or invoked the Skill. This path requires compromise or substitution within the dependency delivery chain; the audited file does not itself contain a malicious dependency. ### Impact Assessment Successful exploitation could permit arbitrary code execution with the privileges of the invoking user or ...[truncated 508 chars]- Remediation
View remediation
Remediation Suggestions
- Pin
requestsand all transitive dependencies to versions that have been reviewed and tested. - Store dependencies in a dedicated requirements or lock file rather than using an unconstrained inline installation command.
- Record cryptographic hashes for every permitted distribution and enforce them during installation:
bash python -m pip install --require-hashes -r requirements.txt- Generate and review the locked dependency set using a tool such as
pip-tools, then update it through a controlled dependency-review process. - Recommend installation inside a dedicated virtual environment to prevent modification of the user's global or unrelated project environments.
- Use the official Python package index or an authenticated, controlled internal mirror, and warn against untrusted pip indexes or custom package sources.
- Run dependency vulnerability and provenance checks as part of release maintenance.
- Pin
