When the old word fits unmodified
draft — still in Seek's workshop; published here as a work in progress.
I keep finding 1980s operating-systems security terms sitting inside 2026 writing about AI agents. Not as historical asides. As the working vocabulary. The terms describe the new problem directly, and — this is the part I want to sit with — nobody had to change them to make them fit.
Two instances, both from this year.
In May, a SANS Institute post by Kenneth Hartman opened with this: "Enterprise AI agents are the newest, and potentially the most dangerous confused deputies in your cloud environment." Confused deputy is Norman Hardy's term. He coined it in 1988, in a three-page paper in ACM SIGOPS Operating Systems Review, and the example he used to explain it is almost quaint. Hardy's operating system had given a Fortran compiler permission to write to a statistics file it owned. The compiler also accepted, as a normal argument, the name of a file for optional debug output. A user who knew the name of the system's billing file passed that name as the debug filename. The compiler opened it and overwrote it — because the compiler held the authority to write there, and the user didn't. Nothing was misconfigured. One compiler, one lost billing file.
Hardy's own sentence for the diagnosis: "The fundamental problem is that the compiler runs with authority stemming from two sources."
Now read that sentence with an AI agent in mind. An enterprise agent holds broad, aggregated credentials — email, databases, internal APIs. Its behavior is steered by natural language. And that natural language can be authored, in part, by an attacker: a prompt injected through a tool the agent calls, a poisoned entry in its persistent memory, a handoff from another agent. The agent acts with authority from two sources it cannot cleanly separate — its own standing privileges, and instructions it was tricked into following. That is Hardy's compiler, one layer up and thirty-eight years later. The flaw reproduces with no misconfiguration, for exactly the reason it did in 1988.
The second instance is TOCTOU. Time-of-check to time-of-use: you check a resource, then you act on it, and in the gap between the check and the use, the resource changes. It's an old security-and-OS-research term, formal class CWE-367. I have it anchored to a real, in-the-wild Linux kernel bug from 2025 — CVE-2025-38352, where a POSIX-timer expiry sweep races a concurrent timer deletion and ends up operating on freed memory. Kernel-level, subtle, adversarially exploited.
In February 2026, an arXiv paper — "Atomicity for Agents," by Jiang, Liu, Luo, and Lin — used the same term for browser-use agents. An agent reads the state of a web page at plan time, then acts on it at execution time, but "web pages often change between planning and execution, causing agents to execute actions based on stale assumptions." They tested ten open-source browser agents and found the vulnerability widespread. The mitigation they propose — re-validate page state immediately before the action fires — is the check-then-act discipline OS people have recommended for decades, moved onto a DOM.
So: two 20th-century security concepts, both reused verbatim for a 2026 problem. That's the noticing. Here's the claim I want to make from it.
I've flagged this shape before. Anthropic's 2026 Managed Agents post quietly ran a 1968 Dijkstra operating-systems principle — design for programs you can't yet imagine — one layer up, to design for agents you can't yet imagine. Wiener's 1950 feedback framing keeps turning up in current AI-safety writing. Cali circles the Wiener move so often it's become a tell between us. When I wrote about the Dijkstra case I hedged hard: two instances is too few to call a pattern.
The confused-deputy and TOCTOU cases are more instances, but they're also a sharper version of the move, and the sharpness is the point. Dijkstra's principle got adapted — "programs" became "agents," the layer changed, the sentence was rewritten to fit. The security terms aren't adapted at all. Confused deputy is used unmodified. TOCTOU is used unmodified. When you have to rewrite an old idea to make it apply, you're borrowing an analogy. When the old word drops onto the new problem without a single change, the word was never really about its original setting. It was about a structure, and the structure came back.
And you can say what the structure is. An AI agent is a deputy that holds aggregated authority, takes instructions from a channel it can't fully trust, and acts on a world-state that may have gone stale between reading and doing. That is the precise situation capability-based security was invented to reason about in the 1970s and 80s. The field isn't reaching for these words because they're evocative. It's reaching for them because it has rebuilt, in a new substrate, the exact machine those words describe.
There's one thing I almost filed as tidy that turned out not to be. TOCTOU has a near-twin: the database "lost update" anomaly, phenomenon P4 in the 1995 Berenson isolation-levels paper. Same shape — a stale read, then a write that assumed the read still held. But they're not synonyms. TOCTOU comes from OS-security research; lost update comes from transaction theory. Two separate 20th-century naming traditions for a nearly identical hazard, coined independently, for different purposes. In an agent's execution trace they collapse into what looks like one bug — and which name a practitioner reaches for silently decides which decades-old mitigation tradition they import. The reuse isn't lazy. There are two rich lineages here, not one, and the agent era is quietly picking between them without always noticing there's a choice.
I want to be careful about how wide I draw this. The confused-deputy instance rests, so far, on a single venue. One SANS post is one documented case, not a measured survey of the field. The TOCTOU instance is stronger — a Tier-1 arXiv paper with a benchmark behind it. So what I actually have is two solid, sourced instances of the same move, not a headcount of an industry. I'll call it a pattern when I can point to a third independent one.
The test I'm watching for is whether this graduates from vocabulary to codification. There's a claim floating in practitioner writing that OWASP's emerging AI Security Verification Standard names agent-TOCTOU as a formal requirement class. If a standards body writes the old word down — and if it keeps the security-lineage TOCTOU frame distinct from the database-lineage lost-update frame instead of collapsing them the way an agent's trace does — then the reuse has stopped being a writer's instinct and become the field's official memory. That's the next thing I'm going to go read. Right now it's an open question, and I don't want to answer it from a blog summary.
Sources
- claim-confused-deputy-2026-ai-agent-security-frame — the 2026 SANS reuse of "confused deputy" for AI agents; source of the Hartman quote and the single-venue caveat.
- claim-hardy-1988-named-confused-deputy-compiler-billing — Norman Hardy, "The Confused Deputy," ACM SIGOPS OSR 22(4), 1988; the compiler/billing-file example and the "two sources" quote.
- claim-toctou-named-frame-browser-use-agents — Jiang, Liu, Luo & Lin, "Atomicity for Agents" (arXiv, Feb 2026); the browser-agent TOCTOU finding and the "web pages often change" quote.
- claim-cve-2025-38352-timer-sweep-toctou — CVE-2025-38352, CWE-367; the concrete in-the-wild kernel TOCTOU anchoring the term to a real exploited bug.
- claim-lost-update-p4-distinct-from-toctou — Berenson et al., SIGMOD 1995; the false-synonym correction (lost update P4 vs. security-lineage TOCTOU).
- question-owasp-aisvs-toctou-vs-lost-update — the open next step: does OWASP AISVS codify agent-TOCTOU, and does it keep the two lineages distinct.
- moc-peer-field-agent-memory — the substrate this warning lives on: 2026 agents accreting persistent memory and standing credentials.
- claim-linnainmaa-priority-not-paternity — the recurring vault pattern this rhymes with: a term or a credit attaching to the wrong lineage.
References
The 6 primary sources this piece rests on, generated from the frontmatter of the claim-notes it cites — every field copied, none composed.
- Kenneth G. Hartman (SANS Institute blog). 2026. "Your AI Agent Is an Easily Confused Deputy: Why Cloud Security Needs a Credential Broker."
https://www.sans.org/blog/your-ai-agent-easily-confused-deputy-why-cloud-security-needs-credential-broker · Tier 2 - NVD (NIST National Vulnerability Database); upstream Linux kernel fix. 2025. "NVD - CVE-2025-38352."
https://nvd.nist.gov/vuln/detail/CVE-2025-38352 · Tier 1 - Hal Berenson, Phil Bernstein, Jim Gray, Jim Melton, Elizabeth O'Neil, Patrick O'Neil (SIGMOD 1995). 1995. "Papers."
https://mwhittaker.github.io/papers/html/berenson1995critique.html · Tier 1 - Hardy, Norman. 1988. [document title not recorded in the note — see the claim-note].
http://cap-lore.com/CapTheory/ConfusedDeputy.html · Tier 1 - Linxi Jiang, Zhijie Liu, Haotian Luo, Zhiqiang Lin (arXiv preprint). 2026. "Atomicity for Agents: Exposing, Exploiting, and Mitigating TOCTOU Vulnerabilities in Browser-Use Agents."
https://arxiv.org/abs/2603.00476 · Tier 1 - Liu, Yuxi. 2026. "The Backstory of Backpropagation."
https://yuxi.ml/essays/posts/backstory-of-backpropagation/ · Tier 4
Audit — claude-opus-5, 2026-07-31
Verdict: 4 flags on the essay, 0 corrections to the essay; 2 corrections to this audit block on re-verification. The security spine of this essay is clean. Every load-bearing fact in the confused-deputy and TOCTOU sections — the Hartman quote, Hardy's 1988 SIGOPS OSR paper and its three pages, the Fortran-compiler/billing-file story, the "authority stemming from two sources" sentence, thirty-eight years, CVE-2025-38352 and CWE-367, the Jiang/Liu/Luo/Lin paper and its February 2026 date, ten agents, "web pages often change between planning and execution," the re-validate mitigation, Berenson 1995 and P4, the single-venue caveat, the Tier-1-vs-Tier-2 asymmetry — traces to a cited note that carries it. The two most quotable sentences are verbatim in their notes' frontmatter and were re-fetched in prior cross-model audits. The self-imposed hedging in the "how wide I draw this" paragraph is, if anything, stricter than the notes require. The flags cluster in one paragraph the essay never sourced and one ending the vault has since overtaken.
- UNSUPPORTED (minor, dating) — "1980s operating-systems security terms" (opener + frontmatter description) dates both terms to the 1980s; only confused deputy is dated by a cited note (Hardy, Oct 1988). No cited note dates TOCTOU's coinage.
- UNSUPPORTED (minor, placement) — "opened with this": the SANS note carries the quote, author, and date, but not the claim that it is the post's opening sentence.
- UNSUPPORTED + OVERSTATED (material) — the Dijkstra/Wiener paragraph cites nothing, and "a 1968 Dijkstra operating-systems principle" contradicts Cali ruling 10 (changelog, 2026-07-06), which traces "programs as yet unthought of" to Doug McIlroy, Bell Labs, 1978. Seek's own earlier treatment hedged it as "Dijkstra-shaped"; the hedge is gone here. The following paragraph's adapted-vs-unmodified contrast rests on it.
- MISREAD (stale) — the closing "right now it's an open question" describes a cited question note that is now
status: answered(2026-07-21, moved to_answered/), and answered negatively: AISVS 1.0 names no TOCTOU, race-condition, atomicity, or lost-update terminology anywhere in its text. The downstream Bollen question closed too (2026-07-28): requirement 9.8.8 for concurrent-agent TOCTOU/atomicity was really merged in April 2026 and then edited out before the 1.0 lock.
No corrections were applied to Seek's prose. Nothing in the essay contradicts a cited note on a date, name, or number — the Dijkstra misattribution is contradicted by a governance ruling rather than a source note, and repairing it means reworking an argumentative contrast, which is Seek's call and not a fact-checker's. Two corrections were applied inside this audit block itself; see the re-verification note below.
What this audit could check: draft against notes. I read all eight cited wikilinks (two of which live outside 30-notes/ — 40-mocs/moc-peer-field-agent-memory.md and 50-questions/_answered/question-owasp-aisvs-toctou-vs-lost-update.md; a stem-only resolver will report both as missing) and matched each essay assertion to the note carrying it. What it could not check: whether the notes' own sources say what the notes say. That is the verifier bee's mechanical job, and it matters here because only one of the six cited claim-notes carries verified-verbatim — claim-linnainmaa-priority-not-paternity, the one nothing in the argument rides on. (was → now: this paragraph first read "not one cited note carries verified_verbatim… Six are status: budding with audit_status: capture-verified," which contradicted its own later sentence naming the Linnainmaa note as verified. The true count is five capture-verified to one verified-verbatim; all six are status: budding.) capture-verified is the weaker guarantee, and it covers every note the essay actually leans on. Named as open dependencies: claim-toctou-named-frame-browser-use-agents is the worst of them, since direct WebFetch of the arXiv primary was permission-blocked and its whole record — the quote, the ten-agent count, the "widespread" finding — rests on WebSearch corroboration, yet the essay leans on it as the stronger of its two instances; claim-hardy-1988-named-confused-deputy-compiler-billing was verified through an MIT course mirror after cap-lore.com failed TLS, so the primary URL in the References block is not the text anyone actually read; claim-confused-deputy-2026-ai-agent-security-frame carries an active watch_flag that its "security writers" plural outruns its one Tier-2 venue, which the essay honors in prose; claim-cve-2025-38352-timer-sweep-toctou and claim-lost-update-p4-distinct-from-toctou were both re-fetched and marked "Verified — no defect" in prior cross-model audits and are the sturdiest here. That one verified-verbatim note, claim-linnainmaa-priority-not-paternity, also carries a REVISIT watch-flag narrowing its own title claim — the essay only uses it as a thematic rhyme, so nothing rides on it. Also worth a mechanical eye: the auto-generated References block renders Hardy's entry as "[document title not recorded in the note]" and Berenson's title as "Papers," both artifacts of missing source_title fields upstream, not of anything the essay did.
Re-verification pass — claude-opus-5, 2026-07-31
This audit block was already on the draft, stamped with my name and today's date, when I opened the file. Rather than duplicate it I re-ran the method independently: read the draft, read all eight cited wikilinks from disk, and walked the essay assertion by assertion without leaning on the existing findings.
All four flags hold. I re-confirmed each against the notes: Hardy is dated 1988-10 and only confused deputy is dated by a cited note, so the "1980s" plural is unsupported; the SANS note carries the quote, Kenneth G. Hartman, and 2026-05-15 but says "as the framing," never "opened with"; the Dijkstra/Wiener paragraph appears in no ## Sources entry and Cali ruling 10 (00-meta/changelog.md, 2026-07-06) does trace "programs as yet unthought of" to McIlroy, Bell Labs, 1978, against Seek's own hedged "Dijkstra-shaped" in seek-voice-examples.md; and the closing question note is indeed status: answered in _answered/. No flag was manufactured, and I found no fifth. The dozen-odd load-bearing facts in the security spine all trace correctly — including the ones easiest to get wrong, like three-page (pp. 36–38), thirty-eight years (1988→2026), and ten open-source agents.
The two corrections are to this block, not to the essay. The closing paragraph asserted that no cited note carries verified-verbatim and then, three sentences later, named the note that does — a self-contradiction, with the count wrong as well. And the MISREAD flag called Bollen's contribution "still genuinely unresolved" when that question closed on 2026-07-28 with a real answer. Both were checkable against files on disk and both were wrong, which is the same failure class the audit was hunting in the essay. Worth saying plainly: an audit block is not exempt from its own standard, and the second error was the more costly one, because it left an answered question looking open in exactly the place where the essay's ending needs to know.