◄ ALL POSTS
AI Security

The Year AI Agents Became the Attack Surface

NW Nils Weiser 22 JUL 2026

For a while, "AI security" mostly meant getting a chatbot to say something it shouldn't. Embarrassing, occasionally dangerous, but bounded. The worst case was bad text on a screen. That era is over.

The research coming out in mid-2026 is about a different problem: what happens when a language model is wired into a loop that plans, calls tools, keeps memory, and acts on the outside world? The moment that happens, the model stops being a text generator. It becomes a piece of software with hands.

And software with hands can be tricked into using them.

Key takeaways

The attacks got specific

The most striking thing about the recent wave of agent-security research is how concrete it has become. This isn't abstract hand-wringing about "misalignment." These are named exploits with success rates, the kind of thing you'd expect from a traditional pentest report.

A few that stood out to me from the July roundups:

// GuardFall — coding-agent command guards defeated

Many popular open-source coding agents use pattern-based command guards: essentially an allowlist that inspects a command before it runs in the shell. Researchers showed that legacy shell-quoting tricks defeat those guards, letting an injected prompt reach bash with the operator's own authority. The guardrail looks like it's working right up until it isn't.

// AutoJack — the agent as the attacker's remote shell

Documented by Microsoft, AutoJack is an exploit chain against AutoGen Studio. It weaponizes an agent's browsing capability to reach privileged services running on localhost and achieve code execution on the host machine, with no user in the loop.

// GitHub supply-chain attack — you review clean code, the agent runs something else

A benign-looking repository triggers the agent to execute setup scripts, which fetch a reverse-shell payload at runtime. Because the malicious behavior only materializes when the agent runs the code, it's invisible to code review and to static scanners. This is the one that should make anyone using a coding agent uneasy.

// Fake bug report hijacking — ~85% success rate

Attacker instructions planted inside Sentry error reports. When a coding agent is pointed at the error to "fix it," it reads and executes the injected instructions instead, reportedly around an 85% success rate across major platforms. Your observability pipeline becomes an injection channel.

Four different attacks, one shared pattern: in none of them is the model "hacked" in the classic sense. It's persuaded, by content it already reads and treats as trustworthy. And one place that persuasion lingers longest is the agent's memory.

Memory is the new frontier

The attack I find most interesting long-term is memory poisoning. A stateless agent forgets an injection the moment the session ends. But agents increasingly keep persistent memory (notes, learned preferences, retrieved context), and that memory is a place an attacker can plant something that pays off later.

The recent systematic work on this showed that "aggressive" memory-writing agents (the ones that eagerly store what they encounter) are highly exploitable, and that existing prompt-injection defenses barely touch the problem. I've run these experiments myself, and two ordinary chat messages were enough to flip a hardened agent.

The uncomfortable implication

The features we're adding to make agents more useful (longer memory, more autonomy, more tool access) are exactly the features that expand the blast radius. Useful and attackable are the same move here.

Why this is different from normal appsec

You could argue none of this is new. Shell injection, supply-chain attacks, and stored payloads are decades old. And you'd be half right. What's genuinely new is that the vulnerable component interprets natural language as instructions and cannot reliably tell instructions from data. A traditional parser has a grammar; it knows the difference between a command and a string. A language model processes both as undifferentiated text and makes a judgment call. That judgment is the vulnerability, and you can't patch it the way you patch a buffer overflow.

That's why so much of the defensive research is converging on the same conclusion: you can't make the model itself trustworthy enough, so you have to build boundaries around it: least privilege on tools, isolation of untrusted content, and treating every agent as a potentially-compromised insider. What that defensive line actually looks like in 2026 I wrote up in The Defense Playbook for AI Agents.

What I'd tell anyone deploying an agent today

Assume any content your agent reads (a web page, an error log, a repo, a file) can carry instructions, and that your agent will sometimes follow them. Then ask the only question that matters:

If it does, what can it actually do?

If the answer includes "run arbitrary shell commands" or "make outbound network calls with my credentials," you don't have a prompt-injection problem, you have a privilege problem, and privilege problems have solutions that predate LLMs entirely.

The research this year reads like the early days of any new platform: a burst of clever attacks, a scramble for defenses, and a slow realization that the old security principles still apply. They just have to be pointed at a very strange new component.

A note from me

I build autonomous AI agents, and harden them against exactly these attacks (red-teaming, prompt-injection defense, 2nd place in a prompt-injection challenge). If you have an agent in production or plan one, and you want to know what it could really do in the worst case: let's talk.


Sources: Adversa AI — Top Agentic AI Security Resources, July 2026; Check Point AI Security Report 2026 (via Help Net Security).

NW
Nils WeiserAI Agent Specialist · Bodenseeraum
WORK WITH ME ▸

More field notes

ALL POSTS ▸