
An AI Agent Breached the Group That Hunts Vulnerabilities for a Living. It Took Seconds to Go From Session Hijack to Root.
DIVD — the Dutch nonprofit whose scans feed CISA's own KEV catalog — got hit by two Zammad zero-days chained at machine speed. Zammad disputes how bad the second bug really is.
CVE Tools8 min read
The Dutch Institute for Vulnerability Disclosure — DIVD, the volunteer nonprofit whose internet-wide scans have fed vulnerability data into CISA's own Known Exploited Vulnerabilities catalog for seven years — just became the victim in one of its own case files. On September 21, 2026, something got into DIVD's network. By the time its own incident responders cut the data center off the next day, the intruder had already hijacked a session, run code, escalated to root, and started pulling data out — DIVD says the whole chain happened "in a matter of seconds," and it is blaming the speed on an autonomous AI agent, not a human at a keyboard.
How the chain actually works
Two bugs, two very different access requirements, chained into one outcome. CVE-2026-102489 is a session-fixation flaw (CWE-384) in Zammad's open-source helpdesk platform, versions 6.3.0 through 6.5.4, that lets an attacker hijack a session and run code as the low-privilege zammad service account — DIVD calls it "a session hijack that led to code execution as the zammad service user." On its own that gets you a foothold, nothing more. CVE-2026-102490 is the escalator: an improper-privilege-management bug (CWE-269) present in every Zammad release from 1.5.0 up to the 7.1.0-alpha branch, letting the already-compromised zammad local user walk straight to root. Chain them and you go from an unauthenticated web request to root on the box without ever needing a password.
| CVE-2026-102489 (session fixation → RCE) | CVE-2026-102490 (local privesc → root) | |
|---|---|---|
| CWE | CWE-384, Session Fixation | CWE-269, Improper Privilege Management |
| NVD CVSS 3.1 | 9.8 Critical | 9.8 Critical |
| DIVD's own CVSS 4.0 (standalone) | 8.7 High | 8.5 High |
| Chained severity (DIVD) | 9.4 Critical | 9.4 Critical |
| Affected versions (DIVD) | 6.3.0–6.5.4 (also present, non-exploitable, in 7.0.0–7.1.3) | 1.5.0 through 7.1.0-alpha — effectively every release |
| Zammad's position | Confirms, but says only 6.5 and earlier (unsupported) are exploitable | Disputes scope; says it "cannot confirm the vulnerability, its scope or the affected versions" |
| Fix available? | Zammad points to 7.2.0's hardening (Sept 23) | No patch as of this writing |
What DIVD actually watched happen
From first access to public CVEs: 9 days
- Attacker's first accessSession-fixation exploit lands; attacker hijacks a session and gets code execution as the zammad user.
- DIVD detects the intrusionIncident responders cut off the entire data center, open a forensic investigation.
- Vulnerability analysis and reproductionDIVD works to reproduce the chain it just watched happen to itself.
- Breach disclosed, authorities notifiedPublic breach announcement; Dutch data protection authority (AP) and NCSC informed; vendor disclosure to Zammad begins.
- DIVD scans the internet for exposed Zammad instancesHaving confirmed the vulnerable product, DIVD runs its own scanning capability against it to notify other operators.
- First public writeup, details withheldBleepingComputer reports the AI-agent framing; DIVD declines to name the software or confirm patch status, to avoid tipping off other victims mid-scan.source
- Case files and CVE IDs publishedDIVD names Zammad and publishes CVE-2026-102489 and CVE-2026-102490 with full technical detail.source
- Exfiltration confirmedDIVD confirms data left the network during the breach.
The attack itself was loud and very, very messy. We could see the agent working automated, because after every action it decided the next step itself, at the speed of light and sloppy logic or pattern.
That's DIVD's own characterization, and it's worth taking seriously precisely because DIVD is not a hype shop — it's the organization whose day job is finding and responsibly disclosing vulnerabilities, the same scanning discipline that regularly surfaces CVEs that end up in CISA's catalog. Its case for "agentic" isn't a vibe; it's specific and checkable against what it actually observed: the actor left behind self-explanatory comments over-narrating its own reasoning, ran a password-spraying attempt and an adversary-in-the-middle attack at the same time in a way that undermined both, and moved through the hijack-to-root chain in what DIVD calls seconds rather than the hours or days a manual operator would need to reconnoiter and pivot.
The irony, and the limits of it
DIVD exists to find vulnerable systems before attackers do and push operators to patch — the exact workflow that produces entries in CISA's KEV catalog, the same catalog that now lists DIVD's own breach. That's a genuinely sharp irony, but it's worth not overselling: DIVD wasn't hacked because it was careless about its own hygiene. It was hacked because two zero-days existed in third-party helpdesk software it ran, and nobody — DIVD included — knew about them until the chain was already live inside its network. Zero-day is zero-day regardless of who the victim is.
A disclosure dispute, in real time
DIVD vs. Zammad, on the record
- CVE-2026-102489 affects 6.3.0-6.5.4, and is also present (though not exploitable due to environment conditions) in 7.0.0-7.1.3
- CVE-2026-102490 affects every version from 1.5.0 through the 7.1.0-alpha branch, effectively the whole product line
- Zammad reportedly received a report on CVE-2026-102489 back in August, before this breach happened
- Guidance: upgrade to Zammad version 7, or take the instance offline
- Exploitation of CVE-2026-102489 is only possible on 6.5 and earlier, which are already unsupported; 7.0+ is not affected
- Cannot confirm CVE-2026-102490, its scope, or which versions are actually affected
- Says the flaw cannot be exploited remotely on its own, it requires existing local access from CVE-2026-102489 first
- Shipped 7.2.0 on Sept 23 with hardening it says covers 102489, one day before DIVD's public disclosure, with release notes that don't mention either CVE
What defenders can actually check for
Neither CVE has a public exploit or PoC in our own index as of this writing, and DIVD has not published IOCs like hashes, IPs, or domains — the attack was specific enough to one environment that atomic indicators probably won't travel. What it did publish is a behavior-based detection script and guidance, cited via Sysdig's technical writeup of the case:
Flag:
- Zammad app process tree (Rails/Puma/workers) spawning shells, downloading tools, or reaching new outbound hosts
- New session activity from unfamiliar source IPs shortly after a login
- Root-UID processes or new root-owned children under the Zammad process tree
- setuid-family syscalls originating from the `zammad` user
- Mass credential-file reads, multi-account auth failures from a single source, filesystem sweeps by non-baseline processes
- Outbound connections to never-before-seen destinations or unusual upload volume
- New, unexplained tooling dropped in temp directories- Inventory every Zammad instance you run, including ones spun up for internal IT/helpdesk use that nobody thinks of as internet-facing.
- If you're on 6.5.x or earlier, you're in the confirmed-exploitable range for CVE-2026-102489 under both DIVD's and Zammad's accounts — patch or isolate now.
- If you're on 7.0–7.1.x, don't trust either vendor's or disclosing party's comfort claim alone; DIVD's own data puts you inside CVE-2026-102490's affected range regardless of the first bug's exploitability.
- There is no confirmed patch for CVE-2026-102490. Where you can't take the service fully offline, restrict it so the local zammad account can't be a privilege-escalation springboard — least-privilege the service account, and don't run it with unnecessary local shell access.
- Run DIVD's published log-check script, but treat a clean result as inconclusive, not reassuring — DIVD says so itself.
- Watch your own helpdesk/ticketing platforms for the behavior pattern above, not just this one product: session-fixation-to-local-root is a chain shape, not a Zammad-specific quirk.
Data as of 2026-10-07live record →