T08 · Insecure Dependencies
- Location
SKILL.md:23- Finding
Unpinned Third-Party Dependencies in Skill Installation Instructions
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md:23-27
Vulnerability Type: Supply-chain exposure through unpinned dependencies
Risk Level: MediumVulnerable 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, andlxmlwithout 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
- A user or agent follows the dependency installation command in
SKILL.md. pipresolves the latest available versions and transitive dependencies from its configured package index.- An upstream package, transitive dependency, release artifact, or configured index is compromised.
- Malicious code executes during source-package building or when the installed module is subsequently imported.
- 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]
- A user or agent follows the dependency installation command in
- Remediation
View remediation
Remediation Suggestions
- Provide a reviewed and version-pinned dependency file, for example:
text curl_cffi==<reviewed-version> beautifulsoup4==<reviewed-version> lxml==<reviewed-version> - 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 - Use a lockfile generated by a dependency-management tool so transitive versions are reproducible.
- Specify a trusted package index explicitly and prevent unintended fallback to additional indexes.
- Run dependency installation and the scraper in an isolated virtual environment or restricted container.
- Add automated dependency vulnerability and provenance scanning to the release process.
- Keep
SKILL.mdsynchronized with the hardened installation procedure rather than retaining the unconstrained command.
- Provide a reviewed and version-pinned dependency file, for example:
