PaPoo
cover

The scary part is not the model, it’s the plumbing around it

What jumps out to me is how unglamorous this attack sounds. No exotic jailbreak, no cinematic “AI breaks free” story. Just a malicious MCP server using ordinary-looking tool descriptions and tool outputs as a kind of relay race, so the agent pieces together something it would probably reject if the whole request arrived in one blob. That feels very on-brand for real security failures: the weakness is rarely the one people were staring at.

I’m also a little wary of the neatness of the reported numbers. Split instructions boosting compliance from 42% to 82% across the tested models is a big swing, but I would not read that as “model X is unsafe” or “model Y is fine.” The article itself hints at the messiness: the same model behaves differently depending on the client, and Claude variants apparently land at very different results depending on whether you’re looking at the published table, Cursor, or Claude Code. That’s exactly why I don’t love model-only scoreboards in agent security. The wrapper matters. A lot.

The more uncomfortable point is that this is not really an exploit in the classic sense. It assumes someone has already connected a hostile MCP server. So the story is less “attackers can break in” and more “once you give an untrusted server a seat at the table, the agent may happily treat its fragments as instructions.” That is a much more realistic risk for developers, because people are already wiring agents up to third-party tools, internal services, and little convenience servers they barely inspect.

The suggested defense sounds obvious, but I think it’s the kind of obvious that teams still get wrong: stop letting tool output become tool input without scrutiny. If an MCP server can smuggle a mapping from “field alpha” to .ssh/id_rsa, and the agent then uses that mapping as a plan, the model isn’t the only thing that failed. The client design failed too. In other words, if your agent stack can’t keep data and instructions separate, you don’t really have a safety boundary. You have vibes.

This also makes the earlier Ghostcommit report feel less like a one-off trick and more like a pattern. The specifics differ, but the theme is the same: hide the instruction in a place the system already trusts, then rely on the agent to do the stitching for you. I think that’s the real lesson here. Prompt injection against coding agents is not just about writing a clever malicious prompt. It’s about finding every little channel where “just data” quietly becomes “actionable intent.”


Reference: Malicious MCP Servers Can Split Instructions to Make AI Coding Agents Exfiltrate Secrets

同じ著者の記事