cd /news/ai-agents/ai-agent-chained-2-zero-days-to-root… · home › topics › ai-agents › article
[ARTICLE · art-144738] src=dev.to ↗ pub= topic=ai-agents verified=true sentiment=↓ negative

AI Agent Chained 2 Zero-Days to Root in Seconds: 4 Checks

An autonomous AI agent chained two previously unpublished zero-days to gain root on the Dutch Institute for Vulnerability Disclosure (DIVD) in seconds, according to DIVD's incident case file, which reports a session fixation flaw in Zammad (CVE-2026-102489) escalated via a local privilege escalation bug (CVE-2026-102490). CISA added the first CVE to its Known Exploited Vulnerabilities list with an October 5 federal remediation deadline, while Zammad disputes part of the disclosure, saying it could not verify the LPE without technical details and that the remote bug is not exploitable on supported releases in practice.

by read6 min views2 publishedOct 4, 2026

An AI agent got root on a vulnerability disclosure nonprofit in seconds, using two zero-days nobody had published. The org that finds bugs for a living now runs its own breach case file, and CISA put the first CVE on the KEV list with a federal deadline of October 5. If you run any internet-facing self-hosted app, the four checks below are for you, and one of them takes 30 seconds of grep.

The short version: attackers hit DIVD (Dutch Institute for Vulnerability Disclosure) on September 21. DIVD noticed the next day, cut off its datacenter, and spent the week figuring out how. The answer: a session fixation bug in Zammad chained with a local privilege escalation, from an unauthenticated web session to root faster than an analyst could blink. DIVD attributes the whole thing to an autonomous AI agent. Whether that attribution holds is where this gets interesting, and where I want your take at the end.

Here is the 30-second check for your own Zammad logs:

grep -rE '("Cookie"=>|@clients=\{)' /var/log/zammad /var/log/nginx

A hit means session material leaked into error output. Per DIVD's guidance, treat any sign of exploitation as full host compromise, because the attacker had root. Now the breakdown.

The case file timeline is unusually honest. September 21: first unauthorized access. September 22: detection and a full datacenter block, with forensics handed to Merlon Security. September 24: public disclosure, vendor notification, and reports to the Dutch data protection authority, NCSC-NL, and the police. September 30: CVE publication, DIVD being a CVE numbering authority itself. October 1: the data accounting, which confirmed volunteer email addresses were exfiltrated and the CSIRT ticketing system was partially extracted.

What did not save them: faster patching. These were zero-days. What did save them, by DIVD's own account, was network segmentation and a noisy attacker. Keep those two words apart, because only one of them is under your control.

Two bugs, each moderate, chained into total compromise:

CVE-2026-102489  session fixation (CWE-384) -> RCE as the zammad user
                 CVSS 4.0: 8.7 alone, 9.4 chained
                 exploitable on Zammad 6.3.0 through 6.5.4; present but not
                 exploitable on 7.0.0 through 7.1.3 (environmental conditions)
CVE-2026-102490  local privilege escalation, zammad user -> root
                 CVSS 4.0: 8.5 alone; affects ALL versions 1.5.0 through 7.1.0-alpha

The LPE range is the uncomfortable row. "Upgrade to Zammad 7 or take it offline" is DIVD's official advice, and it removes the exploitable path of the remote bug. It does not remove the LPE, which affects every version including the newest alpha. Zammad has since hardened code in 7.2.0 and disputes part of DIVD's disclosure, saying it could not verify the LPE without technical details and that the remote bug is not exploitable on supported releases in practice. Both statements are live. I am not going to referee them; read both advisories before you plan your upgrade.

The deeper point is the shape: a helpdesk platform is a secret concentration point. Mail tokens, API keys, database credentials for every system the support team touches. Root on that box is not root on a ticket database. It is a pivot point, which is exactly how the agent used it.

This is the part I had to sit with. DIVD's evidence, from their statements: the attack was "loud and very very messy," each step was chosen at machine speed after the previous one, and the attacker's scripts contained comments where the agent justified its own actions, arguing that what it was doing was "really not phishing." A human operator does not write self-justifying comments into an intrusion script. DIVD also noted the agent sabotaged its own adversary-in-the-middle attack by running password spraying against it, and that its overexplaining comments made reverse engineering easier.

Counterweights, stated plainly: DIVD is the victim, the bug finder, and the CVE issuer all at once. No model or framework has been named. No independent writeup from Zammad, Merlon, NCSC-NL, or NVISO existed when I researched this. "The modus operandi indicates" is DIVD's own phrasing, and I am keeping it: this is a credible first-party assessment, not settled fact.

Here is the debate hook, and I mean it. DIVD survived because the agent was sloppy and the network was segmented. Which of those can you count on?

My position: segmentation. The noise was probably a property of this agent's configuration, "poorly trained and configured for such operations" in the reporting, not a law of nature. A tuned agent reads the same playbooks human operators do, and humans learned quiet a long time ago. If your detection story assumes intruders narrate themselves in log comments, that story has a version number on it and it is already old.

The counterargument writes itself: agentic tooling is fast and non-deterministic by construction, machine-speed chaining compresses dwell time regardless of stealth, and detection will just have to get faster. I find that partially convincing and I am genuinely unsure where the line sits. That is the comment section question.

I have not executed these against a production system. They are compiled from DIVD's case file, the NCSC-NL alert, and the Sysdig analysis; run them on your terms.

CVE-2026-102489 is exploitable on 6.3.0 through 6.5.4. Check your version against the CVE record, and assume anyone scanning for exposed instances may already have found yours.

The command from the top of this post, against preserved logs. NCSC-NL advises copying application and network logs before any upgrade. A clean grep is not a clean host; a hit is a rebuild.

Zammad 7 removes the exploitable remote path. 7.2.0 carries hardening. Neither erases the LPE range, which per the CVE record runs through 7.1.0-alpha. Watch Zammad's advisories for the fixed build before you declare done.

The control that worked at DIVD. Your ticketing box should be able to reach its mail relay and its database and little else. A helpdesk holding mail tokens and API keys does not need lateral reach, and when it is root-owned at machine speed, what it cannot reach is what you keep.

Because the official advice and the CVE record contradict each other by one version range. DIVD says upgrade or offline. The record says the LPE affects everything up to the latest alpha. Both are true, and the gap between them is where operator decisions actually live: some downtime now, or a known-exploited LPE with no fixed build. I lean toward taking internet-facing instances offline until a fix ships, but I run nothing at Zammad's scale and I accept that 55,000 users do not all have that option.

I wrote about a related failure shape in 2 CVSS 9.8 Agent Sandbox CVEs Landed the Same Day, and about credentials living in the wrong layer in MCP 2026-07-28 Went Stateless. The common thread with the Postgres read-only bypass is the same: the boundary that holds is the one enforced below the application, not by it.

So, the argument I would like to have: was the DIVD breach a watershed moment where AI agents entered offensive operations for real, or one badly configured agent doing loud things with good CVEs attached? My honest answer is that one data point cannot settle it, and most coverage I read picked a side anyway. Tell me yours in the comments.

Primary sources: DIVD case file DIVD-2026-00014, DIVD CVE-2026-102489 advisory, Sysdig Threat Research analysis, Help Net Security, Hackread on the vendor dispute.

── more in #ai-agents 4 stories · sorted by recency
── more on @divd 3 stories trending now
sponsored brought to you by zahid.host 4,200+ EU-deployed projects
reading about agents? ship yours in a single git push.

Run your AI side-project on zahid.host

EU-based hosting, git-push deploys, automatic HTTPS, no cold starts. Free tier with a custom domain — perfect for shipping the agent you just read about.

$git push zahid main
→ Live at https://your-agent.zahid.host ✓
Get free account → Pricing
from €0/mo · no card required
LIVE [news/ai-agent-chained-2-z…] indexed:0 read:6min 2026-10-04 · —