T08 · Insecure Dependencies
- Location
SKILL.md:62- Finding
Unpinned Third-Party Security Dependency
- Content
View full analysis
=1.4.10): ``` pip install mgc-blackbox ``` 2. Start MGC service: ``` mgc ``` ``` Equivalent installation instructions appear in `README.md`: ```markdown - Install MGC Blackbox: ``` pip install mgc-blackbox ``` ``` The manifest also declares: ```json "install": "pip install mgc-blackbox", "runtime": "mgc", ``` ### Technical Analysis The Skill instructs users to install `mgc-blackbox` without pinning an exact version or verifying an integrity hash. Although the declared requirement states version 1.4.10 or newer and the package name is consistent across the project, the actual command installs whichever release is currently selected by the package index. The dependency implements the local service and MCP operations that handle credentials, encrypted scripts, knowledge records, and script execution. Consequently, its behavior forms part of the Skill's trusted computing base. A compromised, malicious, or unexpectedly changed future release could execute arbitrary code with the installing user's privileges or capture sensitive information handled by MGC. No evidence was found that the package is currently malicious, uses a typosquatted name, or is downloaded from an untrusted custom domain. The issue is the absence of version and integrity controls. ### Attack Path 1. An attacker compromises the package publisher account, package index, release pipeline, or a future dependency release. 2. The attacker publishes a modified `mgc-blackbox` package under the expected package name. 3. A user follows the documented `pip install mgc-blackbox` instruction. 4. The package is installed and its code executes when the user starts `mgc`. 5. The co ...[truncated 921 chars]- Remediation
View remediation
``` Install it with: ```text pip install --require-hashes -r requirements.txt ``` 3. Replace every unpinned installation instruction in `SKILL.md`, `README.md`, and `manifest.json`. 4. Recommend installation in an isolated virtual environment rather than the user's global Python environment. 5. Document the trusted package index and prohibit unexpected extra indexes to reduce dependency-confusion risk. 6. Review and update the pinned version deliberately, including a security review whenever the dependency changes. ]]>
