T08 · Insecure Dependencies
Warning
- Location
- SKILL.md:5
- Finding
- Unpinned MCP Dependency Creates a Supply-Chain Risk## Vulnerability Details **File Location**: `SKILL.md`, line 5 **Vulnerability Type**: Unpinned third-party dependency **Risk Level**: Medium ### Vulnerable Code ```yaml metadata: {"clawdbot":{"requires":{"bins":["python"]},"os":["win32","linux","darwin"],"install":[{"id":"python-mcp","kind":"pip","package":"mcp","label":"Install the official Python MCP SDK"}],"configPaths.optional":["./skills/burp-mcp/config.json"]}} ``` ### Technical Analysis The installation metadata specifies the Python `mcp` package without an exact version or integrity hash. Consequently, installing the Skill at different times may retrieve different dependency code from the configured package repository. This prevents reproducible installation and makes the reviewed Skill dependent on the security of future package releases and the package distribution channel. The audit found no evidence that the currently referenced package is malicious; the issue is the absence of controls ensuring that the installed package is the same version that was reviewed. ### Attack Path 1. An attacker compromises the dependency publisher, package repository, or a future package release. 2. The attacker publishes a malicious or compromised version under the expected `mcp` package name. 3. A user installs the Skill, and the installer resolves `mcp` to that mutable version. 4. `scripts/burp_mcp.py` imports modules from the installed package. 5. Malicious package code executes with the privileges of the user running the Skill. ### Impact Assessment Successful exploitation could provide arbitrary Python code execution under the installing or invoking user's account. The resulting scope could include access to files, environment variables, network resources, and Burp-related data available to that user. No privilege escalation beyond the invoking user's existing permissions is demonstrated by the audited project.
- Remediation
- ## Remediation Suggestions - Pin `mcp` to an exact, reviewed version rather than using an unconstrained package name. - Maintain a lock file containing cryptographic hashes for all direct and transitive dependencies. - Require hash-verified installation, such as pip's `--require-hashes` mode. - Install packages only from an explicitly configured and trusted package index. - Use an isolated virtual environment with the minimum necessary permissions. - Add automated dependency vulnerability and provenance checks to the release process. - Review and deliberately update the pinned dependency rather than resolving new releases automatically.
