T08 · Insecure Dependencies
- Location
SKILL.md:61- Finding
Unpinned Third-Party npm Package Execution and Installation
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, lines 61–62
Vulnerability Type: T08: Insecure Dependencies
Risk Level: MediumVulnerable Code Snippet:
markdown - MCP server (same checks as tools): `npx -y pulsefeed-x402-mcp` - Guard SDK (blocks bad payments automatically): `npm i pulsefeed-x402-guard`Technical Analysis
The documented commands resolve packages through the npm registry without specifying exact, previously reviewed versions. The
npx -ycommand is particularly sensitive because it automatically accepts package installation and then executes the resolved package. Neither command specifies a version, verified integrity digest, lockfile, trusted provenance requirement, or mandatory source-review procedure.Consequently, the code executed or installed when a user follows this guidance can differ from the artifact that existed when the Skill was audited. If a package maintainer account or publishing token is compromised, a package is transferred to a malicious maintainer, or a malicious release becomes the registry's default version, the commands could retrieve and run attacker-controlled code.
This finding does not establish that either named package is currently malicious. The vulnerability is the unsafe, unpinned dependency acquisition and automatic execution pattern recommended by the Skill.
Attack Path
- An attacker compromises the npm maintainer account, publishing credentials, or supply chain of
pulsefeed-x402-mcporpulsefeed-x402-guard. - The attacker publishes a malicious version that becomes the version resolved by the unpinned package name.
- A user follows the command in
SKILL.md. - For
npx -y pulsefeed-x402-mcp, npm downloads the currently resolved package without an interactive confirmation and executes its entry point. Package lifecycle scripts may also run during acquisition. - For
npm i pulsefeed-x402-guard, npm installs the currently resolv ...[truncated 943 chars]
- An attacker compromises the npm maintainer account, publishing credentials, or supply chain of
- Remediation
View remediation
Remediation Suggestions
- Replace unversioned package references with exact, reviewed versions, such as
package-name@x.y.z. Do not use version ranges or floating distribution tags for security-sensitive tooling. - Avoid recommending automatic execution through
npx -y. Require users to inspect package metadata, provenance, repository contents, and lifecycle scripts before executing the package. - Provide the canonical source repository and identify the reviewed source commit corresponding to each recommended npm release.
- Publish and document expected integrity hashes or signed provenance information, and instruct users to verify them before installation.
- Use a committed lockfile for project installations and perform reproducible installation with
npm ci. - Where supported, require npm provenance attestations and monitor the packages for maintainer, ownership, lifecycle-script, and release-signing changes.
- Recommend testing unfamiliar packages in an isolated, least-privileged environment without production credentials, wallet keys, or access to sensitive host files.
- Replace unversioned package references with exact, reviewed versions, such as
