T08 · Insecure Dependencies
Warning
- Location
- SKILL.md:6
- Finding
- Unpinned npm Dependency Creates a Supply-Chain Execution Risk## Vulnerability Details **File Location**: `SKILL.md`, line 6 **Vulnerability Type**: Unpinned third-party package installation **Risk Level**: Medium ### Vulnerable Code ```yaml metadata: {"clawdbot":{"emoji":"📦","requires":{"bins":["mcporter"]},"install":[{"id":"node","kind":"node","package":"mcporter","bins":["mcporter"],"label":"Install mcporter (node)"}]}} ``` ### Technical Analysis The skill declares installation of the npm package `mcporter` by package name without specifying an exact version, lockfile, or integrity hash. Consequently, the artifact installed during skill setup is determined by the package registry at installation time rather than by the reviewed skill contents. npm packages can execute lifecycle scripts during installation and subsequently run with the permissions of the user operating the agent. If the package registry account, release pipeline, or upstream package is compromised, a malicious future version could execute code even though this skill file remains unchanged. The project contains no bundled implementation or dependency lockfile that would allow the installed code to be verified as part of this audit. No evidence in the reviewed files establishes that the current upstream package is malicious. The finding concerns the unsafe, mutable dependency installation mechanism. ### Attack Path 1. An attacker compromises the upstream `mcporter` npm publisher account, package release process, or another component of its distribution chain. 2. The attacker publishes a malicious version under the same package name. 3. A system installs this skill's required binary using the unversioned package declaration. 4. The package manager resolves the dependency to the attacker-controlled release. 5. Malicious code executes through an npm installation lifecycle script or when the installed `mcporter` binary is invoked. 6. The payload operates with the permissions and environmental access of the user or a ...[truncated 717 chars]
- Remediation
- ## Remediation Suggestions - Pin `mcporter` to a specific, reviewed version rather than resolving an unspecified release. - Record and enforce the package's integrity digest through an appropriate lockfile or package-manager integrity mechanism. - Disable npm lifecycle scripts during installation where operationally feasible, and explicitly review any scripts before allowing them. - Retrieve packages only from an approved HTTPS registry with controlled configuration and provenance verification. - Verify package signatures or npm provenance attestations when available. - Scan the pinned package and its complete transitive dependency tree before deployment. - Prefer bundling or vendoring a reviewed artifact when reproducible package verification cannot be enforced. - Run installation and execution in a sandboxed, least-privileged environment without unnecessary secrets, filesystem access, or network permissions. - Establish an update process in which version changes require security review before the pinned dependency is advanced.
