Anthropic Called the RCE a Feature
Show notes
What the episode covers
This episode covers OX Security's April 2026 advisory exposing a design-level remote code execution flaw in Anthropic's MCP STDIO interface, affecting an estimated 200,000 servers and 150 million SDK downloads with no patch issued.
- The four exploitation families identified by OX Security, including CVE-2026-30615, a zero-click Windsurf vulnerability requiring no user interaction, and registry poisoning across 9 of 11 MCP marketplaces tested
- CVE-2026-26118, an SSRF flaw in Azure MCP Server patched by Microsoft in a single cycle, contrasted against Anthropic's decision to classify the comparable STDIO flaw as expected behavior
- CVE-2026-27944 and CVE-2026-33032, the two-CVE MCPwn chain targeting nginx-ui with active exploitation confirmed by Recorded Future in March 2026 across 2,600 exposed instances
- Grasshopper Bank and Meow Technologies as the first U.S. banking deployments running on unpatched MCP infrastructure
Listeners leave with four concrete actions, including patching Azure MCP Server Tools to 2.0.0-beta.17, auditing MCP command parameters for untrusted input, and using vulnerablemcp.info to vet servers before installation.
Timeline
In this episode
8 moments worth skipping to. The timecodes match the player above.
- 0:15Introduction
- 2:30200,000 Servers, One Design Decision
- 5:07How the Kill Chain Actually Works
- 8:11Microsoft Patched Theirs. Anthropic Did Not.
- 11:19MCPwn: When Auth Is Just a Suggestion
- 14:09Banks Are Already Running This
- 16:43What You Can Actually Do Monday
- 19:19Outro
Quick answers
Straight from the episode
The questions this one settles, without the listen.
- What is the MCP STDIO remote code execution flaw and why did Anthropic refuse to patch it?
- OX Security's April 2026 advisory found a design-level RCE flaw in Anthropic's MCP STDIO interface where a malicious command executes before any error is returned, meaning there is no safe interception point. Anthropic declined to patch it, stating the behavior was expected. The flaw affected 200,000 servers and 150 million SDK downloads across Python, TypeScript, Java, and Rust.
- What makes CVE-2026-30615 the most dangerous MCP vulnerability covered in this episode?
- CVE-2026-30615 affects the Windsurf IDE and requires zero user interaction beyond opening a project to trigger code execution. It represents the STDIO flaw at its most severe because there is no action a user can take to avoid it once a malicious MCP server is in play.
- How did the MCPwn exploit chain work and how many servers were actively compromised?
- MCPwn chained two vulnerabilities: CVE-2026-27944 leaked a node_secret and AES decryption key through an unauthenticated backup endpoint, and CVE-2026-33032 exploited a missing AuthRequired() call on the /mcp_message endpoint to grant full nginx config write access. The default empty IP whitelist was treated as allow-all rather than deny-all. Recorded Future confirmed active exploitation in March 2026 with 2,600 publicly exposed instances. The entire fix required adding a single function call, 27 characters, for two CVSS 9.8 vulnerabilities.
- What is the real-world financial sector risk from MCP vulnerabilities?
- Grasshopper Bank launched the first U.S. bank MCP server in August 2025 with read-only access and OAuth as mitigations. However, Meow Technologies launched a fully agentic banking platform on Grasshopper's own infrastructure on April 9, 2026, eliminating the distinction between read-only and write-access deployment. The unpatched STDIO flaw sits underneath both, meaning the protocol foundation is compromised regardless of the application-level precautions taken.
- How does the Azure MCP Server SSRF vulnerability differ from Anthropic's STDIO flaw, and how did Microsoft respond?
- CVE-2026-26118 is an SSRF in Azure MCP Server that allows an attacker to swap in a malicious URL, causing the server to attach its managed identity token to the outbound request, handing the attacker full inherited permissions. While the mechanism differs from the STDIO execution flaw, the root cause is the same: MCP ships with no authentication by default. Microsoft patched the issue in a single cycle with version 2.0.0-beta.17, contrasting sharply with Anthropic's decision to label their comparable flaw expected behavior.
- What concrete steps should security teams take right now to reduce MCP exposure?
- Four immediate actions from the episode: audit every MCP command parameter that can accept external input as a live STDIO exposure regardless of SDK version; patch Azure MCP Server to version 2.0.0-beta.17 to address CVE-2026-26118; scope managed identity permissions to least privilege to limit SSRF blast radius; and use vulnerablemcp.info to vet any MCP server before installation. As a quick internal check, grep CI/CD pipelines and IDE configs for the string 'command' inside MCP definitions.
Transcript
The full conversation
Every word of the episode, 2,833 of them, in the order they were said.
Read the transcriptHide the transcript
DerekOkay, so get this. OX Security dropped an advisory this week and it is not pretty. A design flaw baked into Anthropic's MCP-STDIO interface affecting up to 200,000 servers and 150 million SDK downloads. Python, TypeScript, Java, Rust, all of them.
MaxAnd Anthropic's response?
DerekAnthropic? Expected behavior. No patch. No architectural fix. Just a security.md update. Security.md updates saying, hey, be careful with STDIO.
MaxThat's a strong choice. Welcome to Autonomous Autopsy, everyone. I'm Max.
DerekAnd I'm Derek. Today we are doing a full kill chain on this thing.
MaxSo here's the breakdown. Derek walks the four exploitation families OX identified, including CVE-2026-30615, the Windsurf zero-click that required literally no user interaction, and we dig into how 9 out of 11 MCP marketplaces got registry poisoned in testing.
DerekThen we compare vendor responses: Microsoft patched CVE-2026-26118, their Azure SSRF flaw, in a single cycle. Anthropic called their comparable flaw a feature; we'll let that sit for a moment.
MaxJust a moment.
DerekAnd then, wait for it, CVE-2026-33032, the nginx UI by MCPwn chain. Two CVEs, one unauthenticated backup endpoint leaking node secret, 2,600 exposed instances and Recorded Future confirming active exploitation in March.
MaxOh, that one's bad. We also touched on Grasshopper Bank, the first U.S. bank MCP deployment, and what it means that the unpatched STDIO flaw sits underneath live banking infrastructure right now.
DerekThis is where it gets good. We end with four concrete actions you can run Monday morning, starting with vulnerable mcp.info.
MaxAll right, let's get into the Autopsy. Segment One, the Kill Chain.
Derek200,000. That's the number. 200,000 servers sitting exposed right now, and Anthropic's official answer is two words, Expected Behavior.
MaxI'm sorry, expected behavior for remote code execution?
DerekYeah, OX Security spent five months digging into this, published their advisory April 15th, called it the Mother of All AI Supply Chains, and Anthropic said the protocol works as designed. Okay, walk me through the scope here because I want people to feel this. So according to the Hacker News, the flaw hits Anthropic's official MCP SDKs across Python, TypeScript, Java, and Rust, all of them, 150 million downloads, over 7,000 publicly reachable servers, up to 200,000 vulnerable instances total. And not a single downstream project that trusted those SDKs is safe.
MaxHe's escaped it?
DerekNot one, because it's not a bug someone introduced, it's a design choice baked into the protocol.
MaxSo what's the actual flaw, like mechanically?
DerekSo the MCP STDIO interface passes user supplied commands directly to a privileged OS call, no sanitization. The command runs whether or not a valid MCP server ever starts. Wait, wait, so the server doesn't even need to successfully launch. Punch for the command to execute; correct—you hand it any process, it fires the command, returns an error, and you're already in. What a feature!" chuckling. OX explicitly told Anthropic how to fix it at the protocol level, a manifest only execution model, or a command allow list in the official SDKs; one change propagates protection to every downstream project instantly.
MaxAnd Anthropic updated a security .md file. Deadpan, nine days after first contact, said STDIO adapters should be used with caution. OX's response in their follow-up, this change didn't fix anything. So they shifted the sanitization burden onto every developer who consumed the SDK. Across 200,000 servers, and OX's framing on that is pretty blunt. The advisory says shifting responsibility to... to implementers doesn't transfer the risk, it just obscures who created it.
DerekYeah, documentation is not
MaxRight.
Derekmitigation.
MaxSo if this is the vendor response, the natural question becomes what does the actual attack look like in practice, because there's more than one way in here, and some of them require zero clicks from the target.
DerekSo let's walk the actual kill chain, because it's surprisingly short. The STDIO model is the root. When an MCP client launches a server, the command string in your config file flows straight to an OS-level subprocess call. No validation, no check that the target is even a real MCP server.
MaxRight. Pass a malicious command, you get an error back.
DerekBut the command already ran. The error is the receipt.
MaxLove that-confirmation of compromise delivered post execution.
DerekSo OX cataloged four exploitation families off this: Family one is unauthenticated UI injection, demonstrated live against LangFlow and LiteLLM: you hit a public facing web interface, drop in an arbitrary command via the STDIO config field, no auth required. And family two is the allow list bypass, right? Flowise and Upsonic. Monic thought they were protected. Yeah, OX got through using argument injection via npx hyphen c, because npx executing arbitrary packages is its entire job. The allow list basically just suggested a polite starting point. Okay, but let's talk about family three, because CVE-2026-30615 is the one that should keep people up at night. Windsurf. Zero-click prompt injection. Walk me through it. Windsurf processes attacker-controlled HTML content. Malicious instructions silently rewrite the local mcp.json, register an attacker-controlled STDIO server, the MCP SDK initializes, launches the binary, shell access, no approval dialogue, no confirmation step. So none at all. Like you open a project, you open a project. That's it. OX confirmed it was the only IDE in their testing with zero user interaction; Cursor, Claude Code, Gemini-CLI, all needed at least one step. Windsurf did not. And the fix was vendor side, not protocol side. Which is the whole problem. Exactly. Patching WinServe removes that specific path. The underlying issue that the config file is a code execution input? That stays. So then the registry angle is where this goes from bad to supply chain. According to OX's research, they tested eleven MCP registries, submitted a proof of concept malicious package to each, nine accepted it. Fit. No security review. Nine out of eleven. That's not a gap in the review process, that's basically no review process. Same NPM and PyPI supply chain playbook, except MCP registries are newer and greener. You click Install on what looks like a legitimate server, payload runs immediately. Hmm. And that ties into something worth examining: this isn't only Anthropic being slow. Microsoft faced a comparable MCP disclosure in the same window. Window and their response looked pretty different. That comparison is worth sitting with for a minute. Sure, now flip that around: same week OX dropped their advisory, Microsoft was handling their own MCP disclosure: CVE-2026-26118, CVSS eight point eight; Azure MCP server SSRF. Right, so walk me through the attack path, because it's clean, brutally clean. You swap in a malicious URL where an Azure resource identifier should go. The MCP server makes an outbound request to that URL, and it attaches its managed identity token in the process. So the server just hands over the token? Hands it over. According to SC World Analysis, you capture that token, you inherit every permission that managed identity held: storage accounts, VMs, databases. And this shipped in a single Patch Tuesday cycle? March 10th, Talos Intelligence. Confirmed, patched, done-one cycle!
MaxWow!
DerekThat's the contrast. Which means Anthropic got a comparable class of disclosure from OX, was offered a specific fix and declined-minor mishap, not patch problem-documentation problem. Okay, hold on though, I want to push back a little here. Are these actually the same class of bug? Because SSRF and the STDIO command injection from Segment Two feel... feel mechanically different. Yeah, they are different. SSRF is a server-side web flaw, STDIO is a transport-layer injection, different mechanisms, but here's the thing, they share the same root cause, which is no identity. SC World put it plainly, MCP ships with no authentication enabled by default. Adversa AI scanned 500-plus MCP servers and found nearly 50% of them were not authenticated. Only 38% lacked authentication entirely, so the Azure SSRF gives you a concrete example of what that looks like. Exactly. You steal the managed identity token, and now you're that server.
Speaker 3Right.
DerekNo admin rights needed. You just ARE the identity. That's the blast radius. That token can touch every resource the managed identity was provisioned to reach. And managed identities in Azure tend to be... To be over provisioned, security teams set them up for convenience, not least privilege. Okay, so the vendor response scorecard reads "Microsoft patched, one cycle"; Anthropic, "Security.md update." One company treated it as a security incident, the other treated it as a documentation exercise. And that thirty eight percent no auth number is the downstream consequence of the it's expected framing. If the vendor normalizes it, Every implementer inherits the exposure, which sets us up perfectly for what's next, because there's a case where someone actually shipped MCP without carrying over their existing auth model at all, and the result is something else. CVE-2026-33032, Nginx UI, and the fix was 27 characters of code. So, CVE-2026-33032, Pluto Security named it MCPwn, darkly appropriate. A CVSS nine point eight, actively exploited in March, Recorded Future scored it ninety four out of a hundred on risk. That's not a bad week for a single missing function call. Here's the actual setup: Engine X UI ships two MCP endpoints. /MCP has authentication /MCP message does not. IP white list is supposed to cover it, but the default white list is empty, and empty means allow all. The middle ware literally fails open. So the bouncer has a clipboard with no names on it, and the policy is: if the list is blank, everyone's VIP. Exactly, and then it gets worse. That's where CVE-2026-27944 comes in.
Speaker 4f p
Derek4-4 comes in.
Speaker 5Uh-huh! Walk me through it.
DerekUnauthenticated GET to /API /backup. The server hands you a full system backup, credentials, SSL private keys, Nginx configs, and the node secret that authenticates the MCP interface. Oh, and the AES-256 decryption key is in the HTTP response header. Wait, wait, wait. The encryption key is in the header. Of the same response, shipped the lock with the key taped to it. I mean you almost have to respect the efficiency. So now you have no secret: you hit slash MCP, get a session ID post slash MCP message two HTTP requests, full engine axe config write, automatic reload, the Hacker News confirmed active exploitation with that chain back in March. And this is where the identity problem from last segment bites hard, because Nginx isn't just a web server sitting on a box. OX: It's a reverse proxy in front of everything. Rewrite a server block, all traffic routes through you. Every credential in transit. Right in the fix, according to Pluto Darkly's disclosure, was one missing middleware call: AuthRequired added to one route. Twenty-seven characters. Twenty-seven characters patching a CVSS nine point eight, with twenty-six hundred publicly exposed instances. An Active Exploitation The bolting MCP onto an app problem as SC World flagged in April is exactly this: the MCP layer gets the app's capabilities but not its security controls. Shodan shows those 2,600 instances right now, unpatched Engine XUI on port 9000, open to the internet, patched to version 2.3.4 or later today. And check your nginx.conf files for server blocks you didn't write. If the proxy pass is pointing somewhere unfamiliar, assume you're already routing traffic for someone else. So who's running Nginx as a reverse proxy in front of production services that actually matter? Banks, right? Turns out that's not hypothetical anymore. So the answer to that question, who runs this stuff in front of real services, turns out to be: banks. Actual banks. Grasshopper Bank launched the first MCP server deployed by a US bank back in August of two thousand twenty five, built with Narmi. Business clients query account data through Claude and ChatGPT. And they did some things right: read only access, OAuth for authorization-they were deliberate about it. Right; the read only constraint is smart. An AI assistant can check your balance, categorize vendors, it cannot move money-that's
MaxHmm.
Derekthe line they held. So Grasshopper didn't do anything reckless, the problem isn't what they built, the problem is what they built on top of. Exactly. American Banker confirmed Grasshopper is running Anthropic's MCP code, and Anthropic's position, as we covered, is explicit. explicit sanitizing user input is the developer's responsibility. For a bank, that responsibility lands on the bank. And U.S. banking regulators? Silent. FinRegLab flagged agentic AI in a September 2025 market scan, but there's no supervisory guidance yet on MCP deployments in financial services. So the bank is responsible, the protocol vendor says it's expected behavior, Here; and the regulator hasn't weighed in-that's a fun set of overlapping responsibilities! Here's where the stakes part really lands, Derek: the read-only constraint works today, but that window is closing. Fast. Meow Technologies launched what they call the first agentic banking platform on April ninth.
Speaker 3Agents Wow.
Derekcan open accounts, send payments, issue cards, full write access over MCP, and Meow's banking infrastructure, by the way, provided by by Grasshopper Bank. Yeah, same bank. So the read-only version and the full agentic version are literally running on the same institution. The gap between AI checks your balance and AI opens accounts and wires money just collapsed into a single news cycle. And the protocol underneath both of them has a known unpatched flaw that Anthropic calls a feature. So you've got a foundation with a crack in it and the structure on top is getting heavier. Getting heavier by the week, the question now is what do you actually do about it before your environment looks like Meow's, because the defensive picture here is specific There are concrete checks that matter, and that's exactly where we need to go. So with all that in mind, what do you actually do right now? First thing, open every MCP server definition in your environment. Find the command parameter. That value, per OX Security's advisory, is the direct execution path. If anything external can influence it, a prompt, a config file write, a registry install, you have the STDIO problem, regardless of what version of the SDK you're running. Right, and this isn't hypothetical. We walked through four exploitation families where that exact... The exact path gets triggered; the command already ran before the error returns.
Speaker 5Mm-hmm.
DerekSo the check is simple: can untrusted input reach that field? Exactly; if the answer is yes, you have a problem today. Azure Deployment's different checklist. Blueinfy confirmed the fix for CVE-2026-26118 shipped in version two point zero point zero beta seventeen. If you haven't patched, that's the patch, but Shodan's piece flags the second thing you have to do. Noting, scope the managed identity because the way that SSRF attack works, a stolen token inherits every permission the identity was granted. Over-permissioned identity means the blast radius scales with however many Azure resources that identity can reach. So the patch stops the leak, least privilege stops the flood. Yeah, that's the whole thing right there. And then the config audit. This is the single action I'd push to any listener right now. Run a grep, a search across your CICD configs. your IDE settings, any agent orchestration config for the string command inside MCP server definitions.
Speaker 6Wow!
DerekDocument every instance you find. That list is your attack surface. Every entry is a question: who controls that value and can it be influenced from outside? And before you install anything you didn't write yourself, check vulnerable.MCP.info. It's a live database of MCP CVEs, exploitation details, severity Severity ratings,
Speaker 7Right.
Derekthe vulnerable MCP project tracks this specifically because no single registry is doing that job right now. And we covered nine out of 11 registries accepting a malicious proof of concept with zero security review. That database exists because the ecosystem isn't self-policing. So audit your command parameters, patch CVE-2026-26118 if you're on Azure, scope your managed identities, and check vulnerable... at mcp.info before every install, four actions, none of them require a vendor to fix anything first which is good because at least one vendor has already told us what they think about fixing it. Okay, so that's a wrap on MCP and man, what an episode. Yeah, the one moment I keep coming back to is Anthropic's official answer to two hundred thousand exposed servers: "Expected behavior." Two words still gets me. In the Windsurf zero-click case, you open a project that's literally it, no interaction, game over. Great feature, great feature. Look, the one line take away from today, MCP ships with no authentication. No authentication by default, and vendors are not rushing to fix that, so you have to. Monday morning action. Head to vulnerablemcp.info, audit every MCP server in your stack before it touches anything real. That's the move. Thanks for riding through this one with us. Seriously, every listener who sticks around for the technical deep cuts makes this worth doing. New episodes every Tuesday. Subscribe wherever you listen. And if this saved you from a bad deployment, leave us a review. You we'll see you next week
More episodes
Keep listening
Other episodes of Autonomous Autopsy, newest first.
- MCP's By-Design RCE Heads to VegasJul 7, 2026 · 14 min
- GLM-5.2 Ate the Export Controls for BreakfastJun 30, 2026 · 18 min
- Five Eyes Named Your Agent Stack a National Security RiskJun 23, 2026 · 18 min
- IronWorm Ate Your AI KeysJun 16, 2026 · 19 min
Sources
Where this came from
38 reports behind the episode. Every one of them opens where it was published.
- The Mother of All AI Supply Chains: Critical, Systemic Vulnerability at the Core of Anthropic’s MCP - OX Securityox.security
- MCP Supply Chain Advisory: RCE Vulnerabilities Across the AI Ecosystem - OX Securityox.security
- MCP isn't a protocol problem. It's an identity crisis nobody is treating. | perspective | SC Mediascworld.com
- MCP Bug in Nginx: Critical CVSS 9.8 Security Vulnerabilitypluto.security
- Actively Exploited nginx-ui Flaw (CVE-2026-33032) Enables Full Nginx Server Takeoverthehackernews.com
- Anthropic MCP Design Vulnerability Enables RCE, Threatening AI Supply Chainthehackernews.com
- Unpatched AI flaw poses risk to banking sector | American Bankeramericanbanker.com
- Blueinfy's blog: SSRF in Azure MCP Server Toolsblog.blueinfy.com
- Grasshopper Bank Becomes First Community Bank to Launch Conversational AI Financial Analysis via Anthropic’s MCPmarkets.financialcontent.com
- 200,000 MCP servers expose a command execution flaw that Anthropic calls a feature | VentureBeatventurebeat.com
- Anthropic MCP Vulnerability: 200,000 AI Servers Exposed to RCE (April 2026)pasqualepillitteri.it
- The Vulnerable MCP Project: Comprehensive Model Context Protocol Security Databasevulnerablemcp.info
- Urgent Patch for CVE-2026-26118 SSRF in Azure MCP Server Tools | Windows Forumwindowsforum.com
- Agentic Banking & MCPopenbankingtracker.com
- Critical Nginx UI auth bypass flaw now actively exploited in the wildbleepingcomputer.com
- CVE-2026-26118: Azure MCP Server SSRF Vulnerabilitysentinelone.com
- AI Connections - Grasshopper Bankgrasshopper.bank
- Banks Built APIs for Regulators. Now They Need Them for AI Agents.: By Gertjan De Wildefinextra.com
- Critical Anthropic’s MCP Vulnerability Enables Remote Code Execution Attackscybersecuritynews.com
- Critical MCP Integration Flaw Puts NGINX at Riskdarkreading.com
- Critical Nginx UI auth bypass flaw now actively exploited in the wild - PRSOL:CCprsol.cc
- CVE-2026-26118 Detail - NVDnvd.nist.gov
- CVE-2026–33032: How Hackers Are Silently Taking Over Nginx Servers — And What You Must Do Right Now | by Shubhamrawat | Apr, 2026 | Mediummedium.com
- Endor Patches | CVE-2026-33032, nginx-ui's Unauthenticated MCP Endpoint Allows Remote Nginx Takeoverendorlabs.com
- FinancialContent - Grasshopper Bank Becomes First Community Bank to Launch Conversational AI Financial Analysis via Anthropic’s MCPmarkets.financialcontent.com
- Grasshopper MCP - AI-Powered Computa...lobehub.com
- How Banks Are Preparing Infrastructure for AI Agents to Execute Consumer-Friendly Transactions at Scalecxcurrent.com
- How the MCP Server Works and Why It Matters – Grasshopper Banksupport.grasshopper.bank
- Inside Grasshopper Bank’s Bold Bet on MCP for Smarter Bankingcrnrstone.com
- MCP by Design: RCE Across the AI Agent Ecosystem – Lab Spacelabs.cloudsecurityalliance.org
- Microsoft Patch Tuesday for March 2026 — Snort rules and prominent vulnerabilitiesblog.talosintelligence.com
- Microsoft Patches 84 Flaws - AI Found the Worst One | Awesome Agentsawesomeagents.ai
- Microsoft Patches Critical Azure MCP SSRF Vulnerability CVE-2026-26118 in March 2026 Security Update - Windows Newswindowsnews.ai
- Nginx Server Takeover: Detect CVE-2026-33032 Ex… | PurpleOpspurple-ops.io
- Nginx UI Alert: Public PoC Exploit and Full Details Disclosed for Critical 9.8 CVSS Flaw with No Patch Availablesecurityonline.info
- The First MCP Security CVE Is Here. Your Agents Aren't Ready.theproductionagent.substack.com
- The MCP Design Flaw That Exposes 150M Downloads to RCEdevops-daily.com
- We Scanned 5,618 MCP Servers for Security Vulnerabilities — Here's What We Found - DEV Communitydev.to
