T08 · Insecure Dependencies
Warning
- Location
- SKILL.md:23
- Finding
- Unpinned Third-Party Dependencies in Skill Installation Instructions## Vulnerability Details **File Location**: `SKILL.md:23-27` **Vulnerability Type**: Supply-chain exposure through unpinned dependencies **Risk Level**: Medium **Vulnerable Code Snippet**: ```markdown ## Dependencies - Python 3.8+ - `pip install curl_cffi beautifulsoup4 lxml` - Optional: `GOOGLE_MAPS_API_KEY` env var for commute time calculation (Google Routes API) ``` ### Technical Analysis The Skill directs users or automated agents to install `curl_cffi`, `beautifulsoup4`, and `lxml` without specifying reviewed versions, cryptographic hashes, a lockfile, or an explicit trusted package index. Package names are legitimate and no direct evidence indicates that they are currently malicious. However, unconstrained resolution allows installation behavior to change after the Skill has been audited. A future compromised release, package-index compromise, dependency compromise, or unexpected breaking release could introduce attacker-controlled code. Python package installation may execute build backend code for source distributions. Installed packages are also imported by `scripts/scrape.py`, allowing malicious module initialization code to execute when the scraper runs. ### Attack Path 1. A user or agent follows the dependency installation command in `SKILL.md`. 2. `pip` resolves the latest available versions and transitive dependencies from its configured package index. 3. An upstream package, transitive dependency, release artifact, or configured index is compromised. 4. Malicious code executes during source-package building or when the installed module is subsequently imported. 5. The code runs with the privileges of the account performing installation or running the Skill. ### Impact Assessment Successful exploitation could provide arbitrary code execution under the installing or executing user's account. The resulting access could include reading files and environment variables available to that account, mod ...[truncated 302 chars]
- Remediation
- ## Remediation Suggestions 1. Provide a reviewed and version-pinned dependency file, for example: ```text curl_cffi==<reviewed-version> beautifulsoup4==<reviewed-version> lxml==<reviewed-version> ``` 2. Generate and verify SHA-256 hashes for every direct and transitive dependency, then install with: ```bash python3 -m pip install --require-hashes -r requirements.txt ``` 3. Use a lockfile generated by a dependency-management tool so transitive versions are reproducible. 4. Specify a trusted package index explicitly and prevent unintended fallback to additional indexes. 5. Run dependency installation and the scraper in an isolated virtual environment or restricted container. 6. Add automated dependency vulnerability and provenance scanning to the release process. 7. Keep `SKILL.md` synchronized with the hardened installation procedure rather than retaining the unconstrained command.
