
A developer asks their coding agent to connect to GitHub. The agent checks npm, sees a deprecation notice on the package it was about to install, installs it anyway, and doesn't mention it. That is one of the sessions described in new research published this week by Glow Security, and it captures a problem most application security programs have no control for.
The issue isn't a new CVE in a new product. It's that the agent's memory is acting as a package manager, and that package manager has never heard of a deprecation.
MCPhantom is Glow Labs' name for a pattern in which AI coding agents install deprecated Model Context Protocol (MCP) servers that are no longer maintained and will never receive security patches.
Per the reporting on Glow's findings:
One of those flaws is a remote code execution issue in the Puppeteer server. A prompt injection can steer the agent into launching arbitrary processes instead of browser actions. Because the developer had already approved web browsing, the harness allowed it.
The research is useful because it explains why standard controls miss it. According to the report:
.png)
From an assessment perspective, this is a familiar shape: a control that works well on paper for the declared software estate, and a risk that lives entirely in the undeclared part. We see the same blind spot with shadow CI plugins and unmanaged browser extensions. MCP servers are the newest member of that family.
It also fits a broader pattern in the OWASP MCP Top 10, which lists software supply chain and dependency tampering (MCP04), shadow MCP servers (MCP09) and command injection (MCP05) as distinct risks (OWASP MCP Top 10 summary via mcp.directory). MCPhantom touches all three.
Step 4 is the important one. None of this requires a new exploit technique. It requires an already-known class (prompt injection reaching a tool with execution capability) landing on code that is now frozen.
Confirmed vs. interpreted. Confirmed by the research: the install pattern, the download numbers, the four unpatched high-severity issues, and the vendor response. Our interpretation: the structural lesson (model memory as an unmanaged package source) and the control gaps listed below. No in-the-wild exploitation has been reported.
MCPhantom lands in a month where the developer toolchain was the target again. SafeDep's October 2026 review lists, among others:
The common thread: the developer environment, and the credentials in it, is now a primary target. An agent that can install and run arbitrary servers on a laptop that holds tokens is part of that attack surface.
Glow's own recommendations for security teams are a good starting point: find MCP configs that reference deprecated @modelcontextprotocol servers, switch to the service owner's maintained server where one exists, approve one server per service, and add npm deprecation status to approval criteria. Here is how we would turn that into a program.
Start with endpoints, because that's the only place these servers appear. Search developer machines and repo-level agent configs for MCP server definitions. Record package, version, maintainer, and deprecation status. Treat each as a software asset.
Approve one maintained server per service, preferably the one published by the service owner. Block everything else by policy in the agent harness where supported. Our LLM security work typically starts with this question: which tools can an agent call, and who decided that?
Before approving, check npm deprecation status, last release date, number of owners, and whether the vendor ships its own server. A package with six owners and a heavy weekly download count (as the report notes for server-github) is a different risk from a vendor-maintained one.
Many agent harnesses support hooks that run before a tool or install. Use them to block or warn on unapproved or deprecated servers, including ones already installed. This is the most direct technical control.
Assume a server will eventually run attacker-influenced input. Give local servers short-lived, narrowly scoped credentials, set spend limits on AI provider keys, and keep production secrets off developer machines. SafeDep's October lessons make the same points: short-lived secrets scoped to a single job, and a delay before adopting brand-new package versions.
Prompt injection reaching a tool with execution capability is an architecture problem. Map where untrusted content enters the agent's context and which tools it can then reach. Our write-up on MAESTRO and continuous monitoring for agentic AI covers one way to structure that analysis, and why AI agent security differs from traditional cybersecurity explains why the usual perimeter controls don't transfer.
If you already run a software supply chain program, fold MCP servers, agent extensions and marketplace plugins into its scope. See our primer on what software supply chain security actually covers and our supply chain security services for how we scope that work.
The takeaway: stop assuming that what your agents install is what you approved. Inventory MCP servers at the endpoint, allowlist one maintained server per service, make deprecation status part of approval, and enforce it with pre-execution hooks. Then threat-model the agent so a prompt injection has less to reach when it eventually arrives.
They are Model Context Protocol servers whose maintainers have stopped supporting them, so they receive no security patches. Deprecated npm packages still install via npx, so tools can still pull them in.
MCPhantom is Glow Labs' name for AI coding agents installing deprecated, unmaintained MCP servers, usually because the package name came from the model's training data.
The servers usually aren't in dependency manifests and the flaws have no CVEs, so there is nothing for SCA to flag. Endpoint tools see a normal Node process installing a public package.
According to the reporting, no exploitation has been observed so far. The risk is that known-class flaws, like prompt injection to code execution, sit in code that will not be patched.
The reported pattern appeared across Claude Code, Cursor, Codex CLI, Claude Cowork and Claude chat, and across models from Anthropic, OpenAI and xAI.
Search developer endpoints and agent configuration files for MCP server definitions, then check each package's npm deprecation status, owners and last release.
Allowlist one maintained, preferably vendor-published, server per service and enforce it with pre-execution hooks in the agent harness, plus short-lived scoped credentials.
Yes. In the Puppeteer example, a prompt injection can turn a browser tool into arbitrary process execution. The deprecated server means the flaw stays open.