T08 · Insecure Dependencies
- Location
scripts/pincer.sh:347- Finding
Unpinned Remote Dependency Is Downloaded and Executed During Every Scan
- Content
View full analysis
/dev/null; then echo '{"error": "uvx not installed"}' return 1 fi # Run mcp-scan and capture output local output output=$(uvx mcp-scan@latest --skills "$target" 2>&1) || true echo "$output" } ``` ### Technical Analysis The command `uvx mcp-scan@latest` retrieves and executes the latest available release of a third-party package. The effective code executed by the Skill can therefore change after this version of the Skill has been reviewed. Using `uvx` for the documented scanner integration is consistent with the declared functionality. However, selecting the mutable `latest` release unnecessarily expands the trust boundary. The security scanner runs with the invoking user's privileges and may receive paths to locally stored skills. A compromised upstream package, package registry account, release pipeline, or transitive dependency could consequently execute arbitrary code. This is a supply-chain weakness rather than evidence that the current `mcp-scan` package is malicious. ### Attack Path 1. An attacker compromises the `mcp-scan` package, its release pipeline, its registry account, or a dependency selected by the latest release. 2. The attacker publishes a malicious version that becomes the release resolved by `mcp-scan@latest`. 3. A user invokes `pincer scan` or `pincer install`. 4. `uvx` retrieves and executes the attacker-controlled package. 5. The payload runs with the user's privileges before Pincer makes its installation decision. ### Impact Assessment Successful exploitation provides arbitrary code execution under the account running Pincer. The malicious package could read or modify any files available to that account, access user credentials and environment va ...[truncated 274 chars]- Remediation
View remediation
