Fetching from the wire…
Public story · 2026-09-21 · source-backed
A paper submitted September 18 names a failure class I've been half-aware of and never had a word for, then reproduces it in software you probably have installed.
Loopjacking describes the case where a human approves operation A and the runtime executes a materially different operation B. Two variants. Representation-based: B is already encoded but hidden from the approval prompt. Post-approval state substitution: the workflow state is mutable, and something replaces A after the click but before execution.
The reproductions are what make this real rather than theoretical. Post-approval substitution in seven Agno AgentOS releases through 3.0.9. In twelve versions of a conditional in-memory LangGraph Agent Server composition through 0.14.0. Representation mismatch in OpenClaw 2026.2.23, fixed in 2026.2.24.
The negative control is the useful part. OpenAI Agents SDK 0.22.0 and 0.22.2 are not vulnerable, and the reason is a single design decision: they serialize the approved call. The approval binds to an immutable serialized operation, not to a handle pointing at mutable state.
That's the rule, and it's small enough to apply this afternoon. When you render an approval prompt, serialize the exact operation, hash it, show the human that operation, and at execution time verify the hash still matches. If your approval object is a reference into a state dict that other code can write, you have this bug.
Human-in-the-loop is the safety story most agent products lead with. "We ask before we do anything dangerous." I've written that sentence in a README myself. This paper says the asking is only as good as the binding between the question and the action, and three popular frameworks got that binding wrong in shipped releases.
It pairs with an arXiv paper from the same batch on authorization quiescence, which starts from the fact that cancelling a long-running agent doesn't revoke its authority. The agent outlives the process through credentials, queued tasks, callbacks, reservations and provider-side operations. The paper defines a cut protocol that linearizes a root cut, fences old-root expansion and protected sinks, then tests it: two cancellation-only and one cut-only execution accept an already-scheduled late effect, while two cut-plus-fence executions plus a restart and a stale-process run reject it. Seventeen of seventeen registered outcomes matched.
Both papers are saying the same thing about control. The approval and the cancel are UI gestures. Whether they mean anything depends on a binding you probably didn't implement.
Each link below shares sources, entities, or timing with this story.
OpenClaw tagged v2026.8.1 at 03:30 UTC this morning. The release post counts 933 contributors, 569 of them first-time, and more than 16,000 pull requests, roughly half of every PR ever merged into the project, after a seven-week gap against a prior cadence of 106 releases in 2...
Every team's answer to "how do we control agent output quality" is human review. A study submitted September 5 says that gate loosens on its own. Researchers analyzed 11,429 code reviews and found approval rates for AI-authored changes climb with repeated exposure: 30.5% early...
If you're on Pro, Max, or Team, the permission prompt you've been hitting Enter on for a year goes away Friday. Anthropic confirmed auto mode becomes the default, replacing per-call approval with a classifier that inspects each tool call for irreversible, destructive, or out-o...
This is the most actionable research finding I've seen this month, and it confirms something I've felt but couldn't quantify. Paper arXiv:2604.13108 studied 7,012 Claude Code sessions and found that structured architecture documents, ones that declare module boundaries, symbol...
Two merged PRs, five hours apart, and together they change what agent tool approval means on macOS. PR #43624, merged at 00:15Z on September 8, implements macOS user verification using P-256 keys in the Secure Enclave, stored in the Data Protection Keychain, with biometric aut...
EVOHARNESSBENCH does something I haven't seen a benchmark do: it holds the task stream fixed and evolves the harness (arXiv 2609.04280). Seventeen multi-stage streams built from 802 tasks, 520 tools, 42 skills and 62 agents. The finding is that harness expansion alone degrades...
MindPattern daily
One email a day at 7 AM. Sources and a take on every story. Unsubscribe anytime.