T08 · Insecure Dependencies
- Location
SKILL.md:7- Finding
Unpinned Third-Party Python Dependencies
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, line 7
Vulnerability Type: Supply-chain risk from unpinned dependencies
Risk Level: MediumVulnerable Code Snippet:
yaml dependencies: "pip install python-docx fpdf2"Technical Analysis
The Skill instructs users or agents to install
python-docxandfpdf2without specifying reviewed versions or package integrity hashes. Consequently, package resolution depends on whichever releases the configured Python package index serves at installation time.This produces non-reproducible installations and creates exposure to a future compromised or malicious dependency release. The instruction does not use an untrusted custom package index, and no currently malicious package was identified; exploitation therefore depends on compromise of the package source, a dependency release, or the package-resolution environment.
Attack Path
- An attacker compromises a named dependency, one of its transitive dependencies, or the package index/resolution environment.
- The attacker publishes or serves a malicious version under the expected package name.
- A user or agent follows the documented
pip install python-docx fpdf2instruction. - Because no versions or hashes are enforced,
pipresolves and installs the attacker-controlled release. - Malicious package behavior may execute during installation or when the resume-generation code imports the package.
Impact Assessment
Successful exploitation could execute arbitrary code with the privileges of the account performing the installation or running the Skill. This may expose resume data and other files accessible to that account, modify the local environment, or affect generated documents. The instruction itself does not request elevated privileges, so the attainable scope is normally limited to the installing user's permissions unless installation is performed by a privileged account.
- Remediation
View remediation
Remediation Suggestions
- Move dependencies into a reviewed requirements or lock file and pin exact versions.
- Record and enforce cryptographic hashes, for example with
pip install --require-hashes -r requirements.txt. - Review and lock transitive dependencies rather than constraining only direct dependencies.
- Install packages in a dedicated virtual environment under an unprivileged account.
- Use a trusted package index or an internally controlled artifact repository.
- Establish automated dependency vulnerability scanning and a controlled process for testing and updating pinned versions.
