T08 · Insecure Dependencies
- Location
SKILL.md:8- Finding
Unpinned Third-Party Python Packages Installed Through pip
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md:8-12
Vulnerability Type: Unpinned third-party dependency installation
Risk Level: MediumVulnerable Code
yaml install: - id: python-pptx kind: shell label: "Install Python dependencies for PPT conversion (optional — only needed for Mode B)" command: "pip install python-pptx Pillow" optional: trueAdditional installation instructions appear at
SKILL.md:199andSKILL.md:319:text Install if needed: `pip install Pillow`text Install: `pip install python-pptx`Technical Analysis
The skill directs the agent to install
python-pptxandPillowfrom the configured Python package index without pinning versions or verifying package hashes. It provides no lock file, trusted-index restriction, isolated environment requirement, or integrity validation.A
pip installoperation may execute package build and installation logic with the permissions of the agent process. Because package versions and transitive dependencies are resolved at installation time, the effective code can change after the skill has been reviewed. A compromised package release, dependency, or package-index configuration could therefore introduce arbitrary code into the environment.The installation is marked optional and is relevant only to PowerPoint conversion or image processing, which limits exposure but does not remove the supply-chain risk.
Attack Path
- A user requests PowerPoint conversion or image processing.
- The agent determines that the required Python packages are unavailable.
- Following the skill instructions, the agent runs
pip install python-pptx Pillow. pipresolves the current package versions and their transitive dependencies from its configured index.- A compromised package, malicious dependency, or hostile index response supplies attacker-controlled installation code.
- That code ...[truncated 693 chars]
- Remediation
View remediation
Remediation Suggestions
- Pin all direct and transitive dependencies to reviewed versions.
- Maintain a hash-locked requirements file and install with
pip install --require-hashes -r requirements.txt. - Use an isolated virtual environment or restricted container for conversion operations.
- Restrict package downloads to an explicitly trusted package index or internal mirror.
- Require explicit user approval before performing any package installation.
- Run dependency installation and document conversion under a low-privilege account with limited filesystem and network access.
- Regularly scan pinned dependencies for known vulnerabilities and review version upgrades before deployment.
