T08 · Insecure Dependencies
- Location
SKILL.md:47- Finding
Unpinned npm CLI Installation and Execution
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, lines 47–54 and line 69
Vulnerability Type: Unpinned third-party dependency execution
Risk Level: HighVulnerable code:
bash npm install -g mcporterbash npx mcporter list serpzillaTechnical Analysis
The skill instructs users to install
mcporterglobally without specifying an exact version, integrity hash, lockfile, or package provenance verification. It then repeatedly invokes the package throughnpx.Consequently, the code executed during installation depends on whichever package version the npm registry resolves at that time. If the package, its publisher account, or one of its transitive dependencies is compromised, installation hooks or runtime code could execute malicious commands under the privileges of the user running OpenClaw.
Attack Path
- An attacker compromises the npm package, a maintainer account, or a transitive dependency.
- The attacker publishes a malicious release under the package name resolved by the unpinned installation command.
- A user follows the skill instructions and runs
npm install -g mcporter. - npm downloads and executes the attacker-controlled package, including any lifecycle scripts.
- The malicious code accesses resources available to the agent user, potentially including Serpzilla credentials, local files, and MCP configuration.
- Subsequent
npx mcportercalls may continue executing the compromised dependency.
Impact Assessment
Successful exploitation permits arbitrary code execution with the privileges of the account performing the installation or invocation. The resulting access may include reading or modifying user-accessible files, stealing API credentials, changing MCP configuration, falsifying tool output, and initiating unauthorized Serpzilla operations. The scope is limited by the operating-system privileges and isolation applied to the OpenClaw process.
- Remediation
View remediation
Remediation Suggestions
- Pin
mcporterto a specifically reviewed version, such asmcporter@<exact-version>. - Install it as a project-local dependency rather than globally.
- Commit and enforce a lockfile with npm integrity metadata.
- Invoke the locally pinned executable rather than allowing
npxto resolve or download an unspecified version. - Use
npx --no-installwhere appropriate to prevent implicit network installation. - Review transitive dependencies and verify package provenance before upgrades.
- Run the CLI under a dedicated, least-privileged account with restricted filesystem access.
- Pin
