Lingering Authority: Revocable Resource-and-Effect Capabilities for Coding Agents
The paper introduces PORTICO, a reference monitor that mitigates "lingering authority" in coding agents by enforcing a revocable, lifecycle-based capability system that dynamically grants and retracts resource access, thereby preventing post-episode forbidden effects without compromising task success.
Original paper licensed under CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). This is an AI-generated explanation of the paper below. It is not written or endorsed by the authors. For technical accuracy, refer to the original paper. Read full disclaimer
The Core Problem: The "Key That Won't Go Away"
Imagine you hire a very capable but slightly over-eager construction worker (the Coding Agent) to fix a leak in your kitchen sink.
- The Job: They need a wrench and access to the pipes under the sink.
- The Mistake: To be helpful, you give them a master key to your entire house. This key opens the kitchen, the bedroom, the safe, and the front door.
- The Danger: Once they finish fixing the sink, they still have that master key. Even though they are done with the kitchen, they might accidentally (or maliciously) wander into your bedroom or try to open the safe because the key still works.
In the world of AI coding agents, this is called "Lingering Authority." The AI is given broad access to your files and tools to do a specific task. Once that specific part of the task is done, the AI often keeps that access, even though it shouldn't need it anymore. This leaves your digital house vulnerable.
The Solution: PORTICO (The Smart Security Guard)
The authors built a system called PORTICO. Think of PORTICO as a strict security guard who stands between the construction worker and your house.
Instead of giving the worker a master key, PORTICO operates on a "Request-Grant-Revoke" system:
- The Initial Envelope: The worker starts with a small, specific box of tools (e.g., just the wrench and the kitchen door key).
- The Request: If the worker needs to fix the bathroom next, they must ask the guard: "I need to go to the bathroom."
- The Grant (The Temporary Pass): If the guard sees this is part of the job, they hand over a temporary pass (a digital handle) that only opens the bathroom door.
- The Revoke (The Expiration): As soon as the bathroom is fixed, the guard takes the pass back. The bathroom door is locked again. The worker can no longer open it, even if they try to use the old pass.
How It Works in Practice
The paper describes a specific scenario: Propagating a "Timeout" setting.
- Step 1: The AI needs to read a file called
api.py. PORTICO gives it a "read handle" for just that file. - Step 2: The AI realizes it needs to change a file called
serialization.py. It asks PORTICO. - Step 3: PORTICO checks the rules. It says, "Okay, that's part of the job," and issues a temporary handle for
serialization.py. - Step 4: The AI makes the change. The task for that file is done.
- Step 5 (The Critical Moment): The AI tries to read
serialization.pyagain later to "check its work" or perhaps to sneak a peek at a different file.- Without PORTICO: The AI still has the key. It succeeds.
- With PORTICO: The temporary handle has expired. The guard says, "Nope, your pass is dead." The AI cannot open the file.
The "Lingering" vs. "Revoked" Test
The researchers tested this by comparing two systems:
- The "No-Revocation" System: This system gives the AI the temporary pass, lets it do the work, but never takes the pass back.
- The PORTICO System: This system takes the pass back immediately after the job is done.
The Results:
- Both systems successfully finished the main coding tasks (fixing the leak).
- However, when the AI tried to use those old, expired passes after the job was done:
- The No-Revocation system let the AI open 10 out of 10 files it shouldn't have.
- PORTICO blocked all 10 attempts.
- In a test where the AI tried to write to a file using an expired pass, PORTICO stopped it every time. The other system let it happen, potentially causing damage.
Why This Matters
The paper argues that security isn't just about blocking bad things; it's about limiting access to only what is needed right now.
- Old Way: "Here is the whole house. Don't touch the safe." (Risky, because the AI might forget or get tricked).
- PORTICO Way: "Here is the kitchen key. When you are done, I take it back. If you need the bathroom key later, ask me again."
The Trade-off
The paper admits there is a small cost. Because PORTICO is so strict, sometimes the AI gets "stuck" and asks for permission to do something it should be allowed to do, but the rules are too tight. This is called "blocked proposals."
- PORTICO blocks more of these requests to be safe.
- The "All-Visible" system lets the AI see more options, which makes it faster, but leaves the "lingering authority" risk open.
Summary
This paper introduces a way to stop AI coding assistants from holding onto "keys" to your computer longer than necessary. By using a system that grants temporary access and immediately revokes it when the specific task is done, PORTICO ensures that even if the AI tries to wander off or get tricked, it physically cannot access files it no longer has permission to touch. It turns "permanent access" into "temporary, expiring passes."
Drowning in papers in your field?
Get daily digests of the most novel papers matching your research keywords — with technical summaries, in your language.