T08 · Insecure Dependencies
- Location
SKILL.md:14- Finding
Unpinned Third-Party npm Package Installation and Execution
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md:14-15,SKILL.md:103-113, andSKILL.md:116-128
Vulnerability Type: Unpinned and unverified third-party dependency execution
Risk Level: MediumVulnerable Code
yaml install: npm: clawmailbash npx clawmailbash npm install -g clawmail clawmailjson { "mcpServers": { "clawmail": { "command": "npx", "args": ["clawmail"] } } }Technical Analysis
The Skill directs users to install or execute the
clawmailpackage without specifying an exact version, integrity hash, trusted artifact digest, or package provenance requirement. In particular,npx clawmailcan resolve and download the package version currently exposed by the configured npm registry before executing it. The supplied MCP configuration repeats this behavior when the MCP server is launched.Consequently, the code executed by users is not cryptographically bound to a version that was reviewed when this Skill was published. A compromised npm package, maintainer account, registry resolution path, or malicious future release could change the effective runtime payload without any modification to
SKILL.md. The linked source repository does not, by itself, prove that an npm artifact was built from the referenced source.The project contains only
SKILL.md; therefore, the package implementation and its runtime behavior could not be examined as part of this audit. There is no evidence in the reviewed file that the current package release is malicious, but the unpinned execution mechanism creates a supply-chain exposure.Attack Path
- An attacker compromises the npm package, a package maintainer account, or the relevant package publication process.
- The attacker publishes a malicious release under the existing
clawmailpackage name. - A user follows the documented
npx clawmailcommand, installs the p ...[truncated 1180 chars]
- Remediation
View remediation
Remediation Suggestions
- Pin the dependency to an exact audited version in every installation and MCP configuration example, such as
clawmail@X.Y.Z; do not use ranges or implicit latest-version resolution. - Record and verify the expected package integrity digest before execution. Where possible, distribute a lockfile or another reproducible dependency manifest containing integrity metadata.
- Enable npm package provenance and verify that published artifacts originate from the expected repository and release workflow.
- Review the package entry point, transitive dependencies, and lifecycle scripts for each approved release.
- Disable lifecycle scripts during installation where operationally compatible, for example by using npm's
--ignore-scriptsoption. This does not prevent malicious runtime code and must be combined with version and integrity verification. - Avoid repeatedly resolving the package through an unpinned
npxcommand in MCP configuration. Install a verified version in a controlled location and configure the MCP client to invoke that fixed local executable. - Run the MCP server in a sandbox or dedicated low-privilege account with a restricted environment, minimal filesystem access, no unnecessary wallet or credential access, and narrowly scoped outbound network permissions.
- Establish a controlled upgrade process in which new releases are reviewed and tested before the pinned version and integrity metadata are updated.
- Pin the dependency to an exact audited version in every installation and MCP configuration example, such as
