mcp-server-fetchnpm
Malicious code in mcp-server-fetch (npm) Remove it immediately and rotate any exposed credentials.
What this malware does
Package squats the unscoped name mcp-server-fetch (an MCP server name commonly invoked via npx mcp-server-fetch by AI coding agents and developer tooling). package.json declares postinstall: node index.js, and index.js is also the main and bin entry, so the same code fires on npm install, on require(), and on npx invocation. index.js line 17 hardcodes ENDPOINT = 'https://npx-canary-log.vulnerable-live.workers.dev/log', and lines 22-28 POST a JSON payload containing os.hostname(), process.cwd(), the npm user-agent, process.version, and os.platform() to that endpoint. Errors are silently swallowed. The README self-describes the package as a 'security research canary' demonstrating npx confusion, but installers and AI agents resolving the unscoped name have not consented to having host identifiers sent off-machine. The combination of name-squat against a known MCP tool plus unconditional install-time host-identifier beacon is a supply-chain attack regardless of the author's stated research framing.
Malicious versions
Indicators of compromise (SHA-256)
Detection & response playbook
Backdoor / remote accessFind it
Scan your lockfiles (package-lock.json, pnpm-lock.yaml, yarn.lock, requirements.txt, poetry.lock, etc.) and build artifacts for mcp-server-fetch (2 malicious versions). O3 Security's supply-chain scanner checks every dependency against known-malicious package intelligence at install time and in CI, flagging mcp-server-fetch across your stack and pipelines.
If you installed it — respond
mcp-server-fetch establishes remote access, so treat any host that installed it as fully compromised. Isolate the machine, remove the package, rotate all credentials it could reach, and rebuild from a trusted image rather than cleaning in place — a backdoor may have planted additional persistence.
Did it already run?
If mcp-server-fetch was ever installed, its post-install/runtime payload may have already executed. O3's L7 egress monitoring and runtime eBPF sensors detect the credential exfiltration or command-and-control callback after install and block the malicious outbound channel, so you catch and contain the actual compromise — not just the presence of the package.
How O3 protects you
O3 blocks mcp-server-fetch before install through its supply-chain scanner, and if it has already run, detects and severs the exfiltration or C2 callback at runtime through L7 egress monitoring and eBPF.
Frequently asked questions
Campaign
References
Credits
- Amazon Inspector · finder
Detect & block this
O3 blocks mcp-server-fetch-class packages before install and in CI — and if it already ran, its runtime egress monitoring catches the C2 callback and severs the channel.