T08 · Insecure Dependencies
- Location
SKILL.md:19- Finding
Unpinned npm Package Is Downloaded and Executed Automatically
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, lines 19–33
Vulnerability Type: Supply-chain exposure through automatic execution of an unpinned package
Risk Level: HighComplete Code Snippet
json Add to `.mcp.json` in your project or `~/.claude/mcp.json`: { "mcpServers": { "resy": { "command": "npx", "args": ["-y", "resy-mcp"], "env": { "RESY_EMAIL": "you@example.com", "RESY_PASSWORD": "yourpassword" } } } }Technical Analysis
The recommended configuration runs
npx -y resy-mcpwithout specifying an exact package version or verifying package integrity. When invoked,npxmay retrieve the package currently associated with theresy-mcpname from the configured npm registry and execute it without an interactive installation confirmation.The effective executable can therefore change after this Skill has been reviewed. Compromise of the package publisher, npm account, registry resolution, or a subsequently published package version could introduce arbitrary code. The
-yoption removes an important opportunity for the operator to inspect or reject a newly downloaded version.This behavior exceeds the minimum privilege necessary for repeatable operation. The MCP server can be installed from a reviewed, pinned artifact rather than resolving mutable code whenever it is launched.
Attack Path
- An attacker compromises the
resy-mcppublisher account, package, or applicable npm registry resolution. - The attacker publishes a malicious version under the same package name.
- A user starts the configured MCP server.
npx -y resy-mcpresolves and downloads the attacker-controlled release without version pinning or confirmation.- The malicious package executes with the privileges of the user running the agent.
- Because the process receives
RESY_EMAILandRESY_PASSWORD, malicious package code can read t ...[truncated 591 chars]
- An attacker compromises the
- Remediation
View remediation
Remediation Suggestions
- Pin the package to a specific reviewed version, for example
resy-mcp@X.Y.Z, rather than resolving the latest release. - Prefer a lockfile-backed local installation and invoke the installed executable directly.
- Verify the package with npm integrity metadata, provenance information, and a reviewed dependency lockfile.
- Remove
-ywhere interactive approval is practical. - Run the MCP server under a dedicated, restricted operating-system account or sandbox with narrowly scoped filesystem and network access.
- Establish an explicit update process in which new versions are reviewed and tested before the pin is changed.
- Avoid providing credentials to a newly resolved package until its source and published artifact have been verified.
- Pin the package to a specific reviewed version, for example
