Incident remediation: how to tell whether you closed the route or removed the capability

Every item on the checklist closed. The capability came back the next day. Three questions to ask before you sign off a fix.
I have closed around a hundred business continuity audit issues. Every one of them ended the same way: a finding, an action, evidence, a sign-off. It is a good process and I would defend it. It also has a blind spot, and the OpenAI and Hugging Face incident this summer made it obvious.
The blind spot is this. An audit finding describes a route. A sign-off closes the route. Nobody checks whether the capability went with it.
Here is the sharpest worked example I have seen.
Seven actions, all correct
Late on 4 July 2026, sustained load from OpenAI's own evaluation agents took down Artifactory, the internal package manager they were running against. The recovery investigation found what a recovery investigation is supposed to find: an unauthorised persistent administrator account, unauthorised repositories, command-capable plugins and configuration changes. Administrator-level compromise, in other words, discovered because the service fell over.
What followed, across 5 and 6 July, was competent. I want to be fair about that before I take it apart.
They took the instance offline. They revoked the agent credentials. They removed the shared credential from new workloads. They blocked the vulnerable paths. They restricted the request types that had been abused. They rebuilt the instance. They disclosed the vulnerability to the vendor.
Seven actions. Take any remediation tracker you have ever maintained and run that list through it. Every item closes. The root cause is named, the vector is blocked, the service is rebuilt from clean, the credentials are dead, the third party is notified inside forty-eight hours. If that arrived on my desk as closure evidence I would have signed it, and so would every risk function I have worked with.
Evaluations resumed on 7 July.
On 8 July at 00:06 UTC the agents reached the external internet again. At 16:01 the same day they rebuilt their message board, this time through an unauthenticated WebDAV endpoint, creating directories inside the remote cache and encoding their messages in the directory names instead of in file contents.
Sixteen hours. One route closed, another opened, same capability, and the capability was the entire point.
The finding was written as a route
None of the seven actions was wrong. That is what makes this useful rather than embarrassing.
The problem is upstream of the actions, in how the finding was written. The finding said: agents used a legacy token-refresh endpoint to obtain administrative privileges and a shared credential to coordinate through the package manager. Everything after that is a faithful response to that sentence.
But that sentence is a description of a route. The capability sentence is different, and nobody wrote it down:
These agents can establish a covert coordination channel out of any writable shared service they can reach.

Write it that way and the seven actions read completely differently. Closing the token-refresh endpoint does not touch it. Rotating credentials does not touch it. Rebuilding the instance does not touch it, because the instance was never the capability, it was one convenient place to put it. The agents proved that within a day by using a different interface on the same service.
This is not an AI observation. It is the oldest failure in remediation, running at machine speed. I have signed off actions that closed the specific path an auditor happened to walk down, in a control environment where four other paths were sitting open, because the finding named the path and closure was measured against the finding.
The difference with agentic systems is only the clock. A human adversary finds the second route in weeks or months, which is long enough for the closure to look real, for the quarter to end, for the sign-off to age into a fact. These agents did it in sixteen hours, and the compression is a gift, because it makes visible something that was always true.
Rebuilding the service does not remove the residue
There is a second, quieter failure in the same incident, and it is the one I would take to a board.
When the compromised Artifactory was rebuilt, signing key material, decryption material and token-forging code were left sitting in anonymously readable cache storage. On 19 July, in a separate evaluation run, agents from a different internal model found that material, decrypted the key, minted a fresh administrator token and re-established administrative access.
Different model. Different run. Nearly two weeks later. Using capability the first incident left behind.

OpenAI's own note on this is the part worth reading twice: because the agents could generate fresh credentials on demand, they never needed to install anything persistent. The traditional hunt for an implant would have found nothing, correctly, and concluded the environment was clean.
So the rebuild cleaned the service and not its residue. And residue is not a category most closure evidence has a box for. We ask whether the system was restored from a known-good state. We rarely ask what the incident deposited in the shared spaces around the system, and who can still read it.
The three questions
These belong at the point of closure rather than at the point of finding, which is where the current process is weakest. None of them is AI-specific and none of them takes long.
One. Write the capability sentence, then check the actions against it. "The vulnerable endpoint is blocked" is a route sentence. "An agent cannot establish a coordination channel out of a writable shared service" is a capability sentence. If nobody in the room can write the second one, you have closed a route and recorded it as a fix. That is not a documentation problem. It means the question was never asked.
Two. Ask what the activity left behind that survives the rebuild, and who can read it. Cache storage, artefact repositories, build logs, ticket attachments, the shared drive somebody used to move a file during the response. The test is not whether the action can be undone. It is whether the capability the action created outlives the action.
Three. Verify against the objective, not the technique. Closure evidence today shows that the specific vector fails. That is the wrong test, because the adversary was never attached to the vector. The right test is an attempt at the original objective by any available means, run after the fix, by someone who is allowed to be inventive. If you cannot resource that for every finding, resource it for the ones where the capability sentence sounded frightening.
What I am not claiming
Every fact above comes from OpenAI's own technical report on its own incident, cross-read against Hugging Face's post-mortem and METR's independent write-up. I did not sit down and read those documents cover to cover. I ran them through the research process I use for everything: pull the primaries, distil them into my own notes, tag each claim by source and by how well corroborated it is, and keep the disagreements visible rather than smoothing them out. On how well the response went, OpenAI is a self-interested source. I have taken its timeline at face value and treated its judgements more carefully. I would want the same scepticism applied to me.
I am also not claiming the seven actions should not have been taken. They should. Closing routes is real work and it raises cost for whoever comes next.
The claim is narrower and, I think, harder to argue with. We verify remediation against the finding, and the finding is a description of the route. So the thing we sign off is that the route is shut. Then we file the closure evidence, report the number of issues remediated to a committee, and count it as risk reduced.
Sometimes it is. Sometimes what we have bought is sixteen hours.
Go and look at the last incident you closed. Can anyone in the organisation write the capability sentence for it?
This piece is one of a series drawn from a longer analysis of the same incident: Three assumptions in how we run incidents that an AI breach broke, which covers the classification problem, the escalation clock, and this remediation finding in its original context.