T08 · Insecure Dependencies
- Location
SKILL.md:235- Finding
Unpinned Third-Party Python Dependencies
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md:235
Vulnerability Type: Unpinned third-party package installation
Risk Level: LowVulnerable Code
python # Requires: pip install pytesseract pdf2imageTechnical Analysis
The Skill instructs users to install
pytesseractandpdf2imagedirectly from the configured Python package index without specifying reviewed versions, cryptographic hashes, or a locked dependency manifest. Package names are resolved to whichever versions are available at installation time, so the installed code can differ from the code available when the Skill was audited.The package names do not appear to be typographical imitations, and the instruction does not specify an untrusted custom package index. Therefore, this finding does not establish that either named package is malicious. The risk arises from mutable dependency resolution: compromise of an upstream package, one of its transitive dependencies, the configured package index, or a future release could introduce code that executes during installation or later import.
Attack Path
- A user follows the OCR instructions in
SKILL.md. - The user runs
pip install pytesseract pdf2imagewithout version or hash restrictions. pipresolves the latest compatible packages and transitive dependencies from the configured package index.- An attacker who has compromised an upstream release, dependency, package-maintainer account, or package-distribution channel supplies a malicious artifact.
- The malicious package code executes during installation or when the PDF workflow imports the package.
This exploitation path depends on an upstream or distribution-channel compromise; no malicious dependency payload is present in the audited repository.
Impact Assessment
Malicious dependency code would ordinarily execute with the privileges of the account running
pipor the resulting Python process. It could rea ...[truncated 345 chars]- A user follows the OCR instructions in
- Remediation
View remediation
Remediation Suggestions
- Replace the inline unversioned installation command with a reviewed dependency manifest containing exact versions.
- Generate and record cryptographic hashes for every direct and transitive dependency.
- Require hash verification during installation:
bash python -m pip install --require-hashes -r requirements.txt - Periodically review and deliberately update pinned versions rather than resolving new releases automatically.
- Install dependencies in an isolated virtual environment under a non-privileged account.
- Use a trusted package index or an internally controlled artifact repository, and prohibit unexpected fallback indexes.
- Add automated dependency vulnerability and integrity scanning to the release process.
