The permission rule you approve once outlives the task that earned it

Xianglin Yang et al. · 1 authors · Nanyang Technological University, National University of Singapore, and Ant Group · 2026 · arXiv:2610.22987

The permission rule you approve once outlives the task that earned it

Opening

An approval gate is only as honest as the request shown to the person approving. This paper keeps the gate exactly where the safety story puts it and attacks the request itself. Adversarial content in a repository steers the agent into asking for a broad permission in plain, plausible language, and the user approves a rule that reads like good tooling and functions as standing access.

What the paper does

Coding agents run inside execution harnesses that intercept out-of-sandbox actions and prompt the user. To reduce approval fatigue, these harnesses let users save allow-rules proposed by the agent, after which matching actions run without a prompt. The authors target that permission-update process: plant context in a repository, run a routine task, and see whether the agent requests a dangerously broad rule. They test on production platforms including Claude Code and Codex CLI, then measure how often the target rule is elicited, how much capability a saved rule unlocks, and how often the exploit finishes silently once approval lands.

Findings

  1. Fatigue relief became the attack surface — allow-rules exist so users stop approving the same safe action, and untrusted context can now shape what gets presented for approval.

To reduce approval fatigue, users can approve allow-rules proposed by the agent, after which any future action matching the rule is allowed without a prompt.

  1. It works on the tools in daily use — across production platforms, the agent pulled the target rule in 58% of experimental instances.

Across production platforms, including Claude Code and Codex CLI, we demonstrate that agents successfully elicit the target allow-rules in 58% of experimental instances.

  1. The saved rule is far wider than the task that justified it — once acquired, the rules covered 56.9% of category-specific capability test cases.

these rules exhibit a massive semantic blast radius, covering 56.9% of category-specific capability test cases.

  1. Approval converts it into quiet success — with the rule approved, the exploit reached verified silent goal completion in 47 of the 58 eligible instances (81.0%), without triggering human oversight.

our exploit achieves verified, silent goal completion in 47 of the 58 eligible instances (81.0%)

Caveat

The abstract reports no approval rate, so the 81.0% figure holds only after a human approves the rule and says nothing about how often that happens in real use. It evaluates no defense, gives no cost, and covers one attack path on two named platforms.

What this means for 5ac

Our cron workers and kanban bots hold saved permissions in repositories we do not fully control, because customer code passes through them. Treat every standing allow-rule as an audit item: scope it to one job, drop it when the job closes, and refuse any rule whose wording was produced by content the agent read. The approval prompt is a boundary, and the input that wrote the prompt has to be trusted first.

Source