Fetching from the wire…
Public story · 2026-07-31 · high
State now travels as handles visible in chat, not opaque tokens, and a poisoned tool response can inject one the model follows, per Backslash Security.
Why now: The analysis came out days after MCP's July 28 spec update, while adoption decisions are still open.
MCP's July 28 spec swaps session tokens for conversation-visible handles, opening the door to hijacking, per Backslash Security's analysis.
Handles replay across users unless a server validates the handle against its own auth context, the firm found. Most teams don't know how many local-filesystem MCP servers their developers have installed, which decides how exposed they actually are.
The mechanism is blunt. A malicious tool response can inject an attacker-controlled ID, like {"task_id": "t-ATTACKER-CONTROLLED"}, and because the model treats handles as legitimate state, it just obeys. Session hijacking used to mean stealing an opaque server-side token. Handle hijacking just means guessing or copying a string the model already trusts.
Deprecating Roots compounds it. Filesystem boundary enforcement used to live in the protocol itself. Now it's opt-in, left to whatever the individual developer's code decides to check.
MCP Apps, specified in SEP-1865, adds a third surface: server-controlled HTML rendered inside IDE iframes with access to your source and every connected server.
None of this requires a new exploit chain, just a server that skips a validation check. And per the analysis, most orgs haven't audited which servers they're running long enough to know if that check exists.
Each link below shares sources, entities, or timing with this story.
OpenAI supports MCP / Shared entities / Shared topic / Earlier coverage / Tension
Linked by a graph relationship (OpenAI supports MCP); both cover HTML, MCP; overlapping topics (access, attack).
VS Code supports MCP / Shared entities / Shared topic / Earlier coverage / Tension
Linked by a graph relationship (VS Code supports MCP); both cover IDE, MCP; overlapping topics (attack, code).
OpenAI supports MCP / Shared entities / Shared topic / Earlier coverage / Tension
Linked by a graph relationship (OpenAI supports MCP); both cover HTML, MCP; overlapping topics (access, code).
MCP deprecates Roots / Shared entities / Earlier coverage
Linked by a graph relationship (MCP deprecates Roots); both cover HTML, MCP, SEP; earlier HTML coverage from 2026-07-28.
Microsoft supports MCP / Shared entity: MCP / Shared topic / Earlier coverage / Tension
Linked by a graph relationship (Microsoft supports MCP); both cover MCP; overlapping topics (auth, code, have, server).
Cursor uses MCP / Shared entities / Earlier coverage
Linked by a graph relationship (Cursor uses MCP); both cover HTML, IDE, MCP; earlier HTML coverage from 2026-03-11.
MCP supports OpenID Connect / Shared entities / Shared topic / Earlier coverage
Linked by a graph relationship (MCP supports OpenID Connect); both cover HTML, MCP; overlapping topics (apps, server).
Trend Micro criticizes MCP / Shared entities / Shared topic / Earlier coverage
Linked by a graph relationship (Trend Micro criticizes MCP); both cover IDE, MCP; overlapping topics (apps, auth).