T08 · Insecure Dependencies
- Location
SKILL.md:124- Finding
Unpinned Third-Party Python Dependencies
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md:124-127andSKILL.md:216-221
Vulnerability Type: Unpinned and unverifiable third-party dependencies
Risk Level: MediumVulnerable Code Snippets:
bash # Ensure Python is available python3 --version # Dependencies pip install requestsmarkdown | Dependency | Type | Required | Installation | |:-----------|:-----|:---------|:-------------| | LLM API | API | Required | Provided by the Agent's built-in LLM | | pypdf | Python library | Required | pip install pypdf | | pdfplumber | Python library | Recommended | pip install pdfplumber | | reportlab | Python library | Optional | pip install reportlab | | pytesseract | Python library | Optional | pip install pytesseract |Technical Analysis
The Skill instructs the Agent to install third-party Python packages without fixed versions, cryptographic hashes, a lockfile, or an explicitly trusted package index. Each installation therefore resolves whichever package release is available from the configured index at execution time.
Python packages may execute installation or build logic under the privileges of the user running
pip. If an upstream package, release process, package-index account, or configured package repository is compromised, following these instructions could execute attacker-controlled code. Mutable dependency resolution also creates reproducibility and compatibility risks because a release installed in the future may differ from the release originally reviewed.The
requestsinstallation is not justified by the provided local PDF-processing example, increasing the dependency and supply-chain attack surface without a clearly documented functional requirement. The audit did not find evidence that any named package is currently malicious; the finding concerns the unsafe dependency-management practice.Attack Path
- An Agent loads the Skill and follows its enviro ...[truncated 1625 chars]
- Remediation
View remediation
Remediation Suggestions
- Remove
requestsunless a documented feature requires it. - Pin every dependency to a reviewed, exact version rather than resolving an unconstrained latest release.
- Store dependencies in a version-controlled requirements or lock file.
- Generate and enforce cryptographic hashes, for example with
pip install --require-hashes -r requirements.txt. - Configure an explicitly trusted package index or internally controlled package mirror.
- Review transitive dependencies and update them through a controlled vulnerability-management process.
- Install packages inside a dedicated virtual environment or disposable sandbox using a non-privileged account.
- Do not run package installation with administrator or root privileges.
- Separate optional OCR and document-generation dependencies into feature-specific dependency groups so they are installed only when needed.
- Document tested Python and package versions to ensure reproducible deployments.
- Remove
