T08 · Insecure Dependencies
- Location
SKILL.md:15- Finding
Unpinned Third-Party npm Package Download and Execution
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, lines 15, 21, and 61-62
Vulnerability Type: Unpinned and externally mutable npm dependency execution
Risk Level: HighVulnerable Code
Installation instructions at lines 14-21:
bash npx humans-sucks-mcpbash npm install -g humans-sucks-mcpMCP client configuration at lines 58-64:
json { "mcpServers": { "humans-sucks": { "command": "npx", "args": ["humans-sucks-mcp"] } } }Technical Analysis
The Skill instructs users and MCP clients to download and execute
humans-sucks-mcpfrom the public npm registry without pinning a specific version or verifying an integrity hash. No lockfile, vendored implementation, signature-verification procedure, or reproducible package digest is included in the audited project.Consequently, the code executed by these commands can differ from the code that existed when the Skill was reviewed. The MCP configuration is particularly sensitive because the client may invoke
npx humans-sucks-mcpwhenever the server is started. If the package is unavailable locally,npxcan retrieve an externally controlled package version before executing it.This is a supply-chain vulnerability rather than proof that the referenced package is currently malicious. Exploitation depends on a malicious release, npm account or package compromise, package ownership transfer, or another successful manipulation of the dependency source.
Attack Path
- An attacker compromises the npm publisher account or otherwise gains the ability to publish a malicious version of
humans-sucks-mcp. - The attacker publishes a new package version containing malicious installation or runtime code.
- A user follows the documented installation instructions, or an MCP client starts the configured server through
npx. - Because no version or integrity value is pinned, npm resolves and dow ...[truncated 1218 chars]
- An attacker compromises the npm publisher account or otherwise gains the ability to publish a malicious version of
- Remediation
View remediation
Remediation Suggestions
-
Pin the package to a specific, audited version in both installation instructions and MCP configuration, for example:
bash npx --package humans-sucks-mcp@<audited-version> -- humans-sucks-mcp -
Avoid relying on a mutable distribution tag such as
latest. Update the pinned version only after reviewing the new release. -
Publish and verify a cryptographic integrity digest or signed release artifact before execution.
-
Provide a lockfile and reproducible installation process where the client permits local package installation.
-
Disable or strictly review npm lifecycle scripts during installation where feasible.
-
Run the MCP server in a sandbox or container with minimal filesystem access, restricted environment variables, no administrative privileges, and narrowly scoped network access.
-
Document the external data flow and ensure that secrets or private conversation content are not exposed to the MCP process unless required.
-
Include the server source code or an auditable vendored implementation in the project so reviewers can verify runtime behavior rather than trusting an externally mutable package.
-
