T08 · Insecure Dependencies
- Location
SKILL.md:199- Finding
Unpinned Third-Party Python Dependencies
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, lines 199 and 304–309
Vulnerability Type: Supply-chain risk from unpinned third-party dependencies
Risk Level: MediumVulnerable Code Snippets
bash pip install httpx aiohttp beautifulsoup4 lxml requestsmarkdown | httpx | Python library | Required | `pip install httpx` | | aiohttp | Python library | Required | `pip install aiohttp` | | beautifulsoup4 | Python library | Required | `pip install beautifulsoup4` | | lxml | Python library | Required | `pip install lxml` | | requests | Python library | Required | `pip install requests` | | faster-whisper | Python library | Optional | `pip install faster-whisper` |Technical Analysis
The skill directs an agent to install several Python packages without pinning their versions or validating package hashes. It provides no lock file, constraints file, package integrity metadata, trusted-index restriction, or isolated-environment requirement.
Consequently, installation results depend on mutable package-index state at execution time. If a named dependency or one of its transitive dependencies publishes a compromised release, the agent may install and run attacker-controlled code. Package installation can invoke build backends or installation hooks, while malicious library code may execute when imported or used later.
This audit did not establish that any listed package is currently malicious. The confirmed issue is the unsafe dependency acquisition practice and its exposure to future compromise of direct or transitive dependencies.
Attack Path
- An attacker compromises a listed dependency or one of its transitive dependencies and publishes a malicious release accepted by the declared version range.
- An agent follows the setup instructions in
SKILL.md. pipresolves the mutable package index and selects the compromised release because no reviewed version or hash is required.- Attacker-controlled code executes during ...[truncated 828 chars]
- Remediation
View remediation
Remediation Suggestions
- Pin every direct dependency to an explicitly reviewed version.
- Generate and commit a lock or requirements file that also constrains transitive dependencies.
- Require cryptographic hashes, such as with
pip install --require-hashes -r requirements.txt. - Install dependencies inside a dedicated, non-privileged virtual environment or container.
- Restrict installation to an approved package index and disable unintended extra indexes.
- Review dependency provenance, release signatures where available, and published security advisories.
- Add automated dependency and vulnerability scanning to release workflows.
- Avoid instructing agents to install mutable latest releases directly from free-form Markdown commands.
