T08 · Insecure Dependencies
Warning
- Location
- SKILL.md:8
- Finding
- Unpinned Third-Party npm Package Installation## Vulnerability Details **File Location**: `SKILL.md`, lines 8–17 **Vulnerability Type**: Unpinned third-party dependency and install-time supply-chain exposure **Risk Level**: Medium ### Vulnerable Code ```yaml "requires": { "bins": ["mcporter"] }, "install": [ { "id": "node", "kind": "node", "package": "mcporter", "bins": ["mcporter"], "label": "Install mcporter (node)", }, ], ``` ### Technical Analysis The installation metadata requests the npm package `mcporter` without specifying an exact version, integrity hash, lockfile, or verified source revision. Consequently, installation may resolve to mutable registry content that was not reviewed with this Skill. npm packages and their transitive dependencies may run lifecycle scripts during installation. If the package, a maintainer account, the package registry, or a transitive dependency is compromised, installation could execute attacker-controlled code with the privileges of the user running the Skill installer. The absence of version and integrity controls also makes installations non-reproducible and prevents this repository from guaranteeing that the installed executable matches an audited artifact. Installing `mcporter` is necessary for the Skill's declared functionality, but resolving an unconstrained package version exceeds the minimum supply-chain trust required. A pinned and integrity-verified release would provide the same functionality with less risk. ### Attack Path 1. An attacker compromises the `mcporter` package, its publisher account, the package registry, or a transitive dependency. 2. The attacker publishes or causes resolution to a malicious package version. 3. The Skill installation mechanism resolves the unpinned `mcporter` dependency to the malicious version. 4. Malicious code executes through an npm lifecycle script during installation or when the resulting CLI is invoked. 5. The code operates with the installing user's local privileges ...[truncated 1049 chars]
- Remediation
- ## Remediation Suggestions 1. Pin `mcporter` to a reviewed exact version rather than allowing mutable version resolution. 2. Record and verify the package integrity digest or registry provenance before installation. 3. Use and commit a lockfile where the Skill packaging mechanism supports one, including locked transitive dependencies. 4. Document the expected official package registry, package owner, source repository, and reviewed release. 5. Disable npm lifecycle scripts during installation unless they are demonstrably required. If required, review those scripts and document why they are safe. 6. Run installation and the CLI with a non-administrative account in a restricted environment. 7. Limit filesystem and network access to what is necessary for the selected MCP operation. 8. Re-review the pinned package and dependencies before upgrading, and automate dependency integrity and provenance checks.
