T08 · Insecure Dependencies
- Location
SKILL.md:70- Finding
Unpinned Third-Party Dependency Creates Supply-Chain Exposure
- Content
View full analysis
=1.4.9` ``` Equivalent declarations elsewhere in the project are: ```markdown - Install: `pip install mgc-blackbox` ``` ```json "install": "pip install mgc-blackbox>=1.4.9", ``` ### Technical Analysis The Skill directs users to install `mgc-blackbox` without pinning an exact reviewed version or validating package hashes. The `>=1.4.9` constraint allows any future release, while the README imposes no version constraint at all. Package installation is necessary for the declared MGC functionality, but accepting arbitrary future versions is not necessary. Python packages and their transitive dependencies execute code with the installing user's privileges during installation or subsequent startup. Consequently, the effective behavior of this Skill can change after the Skill itself has been audited. The repository supplies no lockfile, hashes, package-index restriction, signature verification, or documented package provenance validation. There is no evidence that the named package is currently malicious; the vulnerability is the unsafe and non-reproducible dependency policy. ### Attack Path 1. An attacker compromises the upstream package, its publishing credentials, or a transitive dependency. 2. The attacker publishes a version satisfying `>=1.4.9`; alternatively, the latest release is selected by the unconstrained README command. 3. A user follows the Skill's installation instructions. 4. `pip` downloads and installs the compromised package or dependency. 5. Malicious installation or runtime code executes with the user's privileges when the package is installed or the `mgc` service is started. ### Impact Assessment Successful ex ...[truncated 453 chars]- Remediation
View remediation
``` 3. Lock all transitive dependencies and install with `pip --require-hashes`. 4. Explicitly identify the trusted package index and verified upstream project to reduce dependency-confusion and package-identity risks. 5. Run MGC under a dedicated, unprivileged operating-system account rather than as root or an administrator. 6. Review and test each dependency upgrade before changing the pinned version. 7. Make `README.md`, `SKILL.md`, and `manifest.json` use the same reviewed installation command. ]]>
