T08 · Insecure Dependencies
- Location
SKILL.md:22- Finding
Unpinned Third-Party npm Package Is Automatically Downloaded and Executed
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, lines 22–25 and 35–38
Vulnerability Type: Unpinned and automatically executed third-party dependency
Risk Level: MediumComplete Code Snippet:
json { "mcpServers": { "glin-profanity": { "command": "npx", "args": ["-y", "glin-profanity-mcp"] } } }The same configuration is recommended for both Claude Desktop and Cursor.
Technical Analysis
The documented configuration invokes
npxwith the-yoption and referencesglin-profanity-mcpwithout an exact version. Consequently, npm can resolve, download, and execute the package version available from the configured registry at invocation time. The-yoption suppresses the installation confirmation prompt.Because the project contains only
SKILL.mdand does not include the package implementation, lockfile, integrity hash, or vendored artifact, the effective executable code cannot be verified from the audited project. No evidence establishes that the current package is malicious; the vulnerability is the mutable and automatically executed supply-chain boundary.Attack Path
- A user copies the documented MCP configuration into Claude Desktop or Cursor.
- The MCP client starts the configured server by running
npx -y glin-profanity-mcp. npxresolves the unpinned package through the user's configured npm registry and may download it without interactive confirmation.- If the package, a future release, its maintainer account, or the configured registry is compromised, attacker-controlled package code is returned.
- The downloaded package executes locally as the user running the MCP client.
- Malicious code could then act with that user's filesystem, process, and network permissions and access content supplied to the MCP server.
Impact Assessment
Successful supply-chain exploitation would permit arbitrary code execution under the MCP c ...[truncated 517 chars]
- Remediation
View remediation
Remediation Suggestions
- Pin the dependency to a reviewed exact version, for example
glin-profanity-mcp@X.Y.Z, rather than relying on the latest registry resolution. - Remove
-ywhere feasible so an unexpected download is not silently approved. - Install the package through a lockfile-controlled deployment process and verify the registry integrity hash before execution.
- Review the selected package version, including install scripts and transitive dependencies, and repeat the review before upgrading.
- Prefer a trusted, reproducibly built or vendored artifact whose source and checksum are documented.
- Run the MCP server with least privilege in a sandbox or restricted account, limiting filesystem, environment-variable, and network access to what profanity detection requires.
- Document the package version and expected publisher or provenance so substitutions and unexpected updates can be detected.
- Pin the dependency to a reviewed exact version, for example
