The 'local' AD FS bug that forges your cloud logins: CVE-2026-56155, exploited in the wild
A CWE-1220 access-control flaw hands attackers the AD FS token-signing key — a 7.8 'local' EoP on CISA's KEV list that unlocks Golden SAML across your whole federation

Microsoft's record-breaking July 2026 Patch Tuesday — roughly 570 CVEs — carried three zero-days, and the one worth your morning is a bug in AD FS, the on-prem service that signs the SAML and JWT tokens every federated app trusts. Its CVSS vector begins AV:L — local access required — so a base-score-only triage files it under soon. But Microsoft flags it exploited in the wild, CISA added it to the Known Exploited Vulnerabilities catalog the same day, and Microsoft credits the find to its own incident-response team. When the people who fix breaches for a living discover a bug inside a breach, the "local" label stops being reassuring.
Scores as of 2026-07-17live record →
What the flaw actually is
AD FS protects the private keys of its token-signing and token-encryption certificates with a symmetric master key managed by the Distributed Key Manager (DKM). That master key doesn't sit on disk — it lives inside Active Directory, tucked in the thumbnailPhoto attribute of a contact object under CN=ADFS,CN=Microsoft,CN=Program Data. Anyone who can read that attribute can rebuild the key and decrypt the signing certificate offline. The vulnerability, classified CWE-1220 (Insufficient Granularity of Access Control), is exactly the failure that makes that read possible: Microsoft's servicing guidance (KB5121391 — "AD FS DKM container ACL hardening") says the DKM container historically shipped with overly-permissive ACLs, so principals that had no business reading the key could reach it.
Why a 'local' 7.8 is an identity emergency
The vector — CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H — reads as contained: local access, low privileges, unchanged scope. Three things invert that reading. First, the asset is a trust anchor: AD FS signs the tokens that Microsoft 365, Entra ID, and every wired-up SaaS accept, so stealing the signing key means minting a valid identity for any user — the classic Golden SAML technique (MITRE T1606.002), MFA bypassed. Second, AV:L is cheap to satisfy mid-intrusion: an attacker with any foothold on the AD FS server context clears the bar, which is why analysts note it "can be paired with an RCE, as we often see in ransomware." Third, CVSS's Scope:Unchanged scores the AD FS host, not the cloud tenants the forged tokens unlock — the base number simply can't see the blast radius.
| Signal | Value | What it tells you |
|---|---|---|
| CVSS base | 7.8 (Important), AV:L | Local EoP on paper — understates a federation takeover |
| CISA KEV | Listed 2026-07-14 | Confirmed exploited; treat as patch-now |
| In the wild | Yes — found by Microsoft DART | Discovered inside a live intrusion, not a lab |
| EPSS | ~0.4% | Low — because it's post-compromise, not mass-scannable; not a 'safe' signal |
| Public PoC | None (as of 2026-07-17) | No weaponized code — but exploitation is already confirmed |
| Deadline | 2026-07-28 (BOD 26-04) | Federal remediation clock for a KEV bug |
The exploitation chain
The path runs from a foothold to durable, tenant-wide identity forgery — and, crucially, it doesn't end when you patch. Because the flaw grants a read of long-lived key material, anyone who read the DKM key before you closed the ACL still holds a working forging key until you rotate the token-signing certificates. The diagram traces the chain and marks the three cheapest places to break it: prevent the read (harden the ACL), detect the theft (audit the key access), and evict the attacker (rotate the certs).
CVE-2026-56155 — AD FS DKM key theft → Golden SAML
- Local foothold on/near AD FS (low priv) — Attacker has local access in the AD FS server context — routinely via an initial RCE or valid-account access. This is the AV:L precondition; cheap to reach mid-intrusion.
- Read the over-permissive DKM container ACL — The vulnerability itself (CWE-1220): the DKM container's ACL lets a non-privileged principal reach key material it should never see.
- Recover the DKM key from thumbnailPhoto — Read the DKM master key from the thumbnailPhoto attribute of the contact object under CN=ADFS,CN=Microsoft,CN=Program Data.
- Decrypt the token-signing private key — The DKM key decrypts the AD FS token-signing (and token-encryption) certificate private keys — the crown jewels of the federation.
- Forge tokens? (Golden SAML) — With the signing key in hand, the attacker can mint valid SAML/JWT tokens offline — MITRE T1606.002, the same technique used in Solorigate (2020).
- Impersonate any user across M365 / Entra ID, MFA bypassed — Forged tokens are accepted by every federated relying party. Durable, tenant-wide identity control that pivots on-prem AD ↔ cloud.
- Persistent federation access (survives the patch) — Because a stolen signing key keeps working after patching, access persists until the token-signing certificates are rotated.
- PREVENT: harden the DKM ACL (RemediateDkmAcl=1) — The cheapest chokepoint: the July update + setting RemediateDkmAcl=1 removes the unauthorized read entirely.
- DETECT: audit DKM key reads + AD FS service-account misuse — Event 4662 on the DKM thumbnailPhoto attribute, and any non-service (LogonType != 5) logon by the AD FS service account, flag the theft.
- EVICT: rotate token-signing certs (twice) — If the key was read before patching, forgery persists until you rotate the token-signing/encryption certs twice. Patch != eviction.
Am I affected?
This is an AD FS bug. If you don't run the AD FS role anywhere in the domain, you're not exposed — confirm with Get-WindowsFeature ADFS-Federation across your servers. If you do run AD FS, every supported Windows Server SKU that hosts the role is in scope until it's patched and the DKM ACL is remediated. Note the two-stage nature of the fix: installing the July update only turns on an audit; it does not fix the ACL by itself.
| What | Detail |
|---|---|
| Affected role | AD FS on Windows Server 2012 (ESU) → 2012 R2 (ESU) → 2016 → 2019 → 2022 → 23H2 → 2025 |
| Not affected | Servers without the AD FS role; Entra ID / cloud-only federation with no on-prem AD FS |
| Fix | July 14, 2026 cumulative update (servicing doc KB5121391) + opt-in ACL remediation |
| Confirm patch by | OS build number for your SKU (verify against MSRC) — not by grepping for 'KB5121391', which is the guidance ID, not the hotfix |
| Confirm remediation by | AD FS/Admin log Event 1133 (secure) or 1135 (remediated); Event 1132 = still exposed |
Exploited in the wild — with a decade of precedent
AD FS token-signing-key theft isn't a novel idea; it's a proven nation-state play. In the 2020 Solorigate intrusions, the actor Microsoft tracks as NOBELIUM extracted AD FS signing certificates and forged SAML tokens — Golden SAML — later aided by the FoggyWeb implant. What this 2026 bug changes is the bar: it hands attackers a low-privilege, local path to the very same key material that used to require domain-admin-level access. Microsoft flags exploitation as Detected and credits discovery to two engineers on its Detection and Response Team (DART) — the unit that investigates live breaches. Honest limits worth stating: Microsoft published no exploitation mechanics, no IOCs, no victimology, and no attribution, and there is no public proof-of-concept. That's a reason to move, not to wait.
CVE-2026-56155 — the precedent and the clock
- Golden SAML in SolorigateNOBELIUM steals AD FS token-signing certificates and forges SAML tokens to impersonate federated users — the technique (T1606.002) this bug makes cheaper to reach.source
- Published, patched, flagged ExploitedJuly Patch Tuesday ships the DKM-ACL hardening; Microsoft marks exploitation Detected and credits its DART incident-response team with the find.source
- Added to CISA KEVCISA adds the flaw to the Known Exploited Vulnerabilities catalog in a four-CVE batch, with a BOD 26-04 remediation deadline.source
- Federal remediation deadlineBOD 26-04 requires federal civilian agencies to remediate the KEV entry — a strong prioritization signal for everyone else.source
- Automatic ACL enforcement beginsFrom this update, Server 2016+ auto-remediates the DKM ACL unless explicitly disabled — but that's 11 weeks past the KEV deadline, so remediate manually now.source
Detection & hunting
A local ACL read leaves little trace, so hunting targets the theft it enables and the Golden SAML abuse that follows, not the vulnerability itself. There is no network signature and no CVE-specific PoC to match. Three telemetry sources carry most of the value:
- The crown-jewel read: Security Event 4662 (Directory Service Access) against the DKM contact object's
thumbnailPhotoattribute (attribute GUID8d3bca50-1d7e-11d0-a081-00aa006c33ed), by any principal other than the AD FS service account. This needs a SACL auditing ReadProperty on the DKM container — deploy it if it's absent. - Service-account misuse: the AD FS service account should only ever produce Event 4624 with LogonType 5 (service). An interactive, network, batch, or RDP logon by that account is a strong hands-on-keyboard signal after an EoP yields the service identity; correlate with Event 4672.
- Golden SAML follow-on: a successful sign-in in a cloud / relying-party log with no matching AD FS token-issuance Event 1200 means the token was forged offline — a high-fidelity indicator. Watch Event 1102 (audit log cleared) on AD FS hosts as anti-forensics.
- Standing config check: AD FS/Admin Event 1132 (from the July update) means the DKM ACL is still insecure — any host emitting 1132 without a later 1135 is vulnerable right now.
What to do now
- Inventory every AD FS farm node and confirm the July 14, 2026 (or later) cumulative update is installed — remember, patching only enables audit mode.
- Read the audit result in the AD FS/Admin log. Nodes showing Event 1132 (ACL not secure) need remediation; 1133 / 1135 are already secure.
- Remediate by setting
HKLM\SOFTWARE\Microsoft\ADFS\RemediateDkmAcl = 1(DWORD) and restartingadfssrv; confirm Event 1135. Don't wait for the October auto-enforcement — it's past the KEV deadline. - Assume the key may be stolen. Since this was exploited as a zero-day, if any node reported 1132 before you patched, rotate the AD FS token-signing and token-encryption certificates twice and re-establish relying-party trusts.
- Hunt for the DKM key read and Golden SAML follow-on (above), and verify remediation farm-wide before 2026-07-28.
FAQ
Is CVE-2026-56155 being exploited?
Why is an exploited, KEV-listed bug scored only 7.8 with a 'local' vector?
We use Entra ID / cloud-only federation. Are we affected?
Is patching enough?
Sources
- Microsoft MSRC — CVE-2026-56155 advisory
- NVD — CVE-2026-56155
- Microsoft — KB5121391: AD FS DKM container ACL hardening
- CISA — Known Exploited Vulnerabilities catalog
- CISA — BOD 26-04: Prioritizing Security Updates Based on Risk
- Zero Day Initiative — The July 2026 Security Update Review
- Tenable — Microsoft's July 2026 Patch Tuesday
- BleepingComputer — Microsoft July 2026 Patch Tuesday fixes 3 zero-days
- The Hacker News — Microsoft patches record flaws in July 2026
- Rapid7 — Patch Tuesday, July 2026
- Hunters — AD FS Threat Hunting, Part 2: Golden SAML
- CyberArk — Golden SAML Revisited: The Solorigate Connection
- The DFIR / ThreatHunter-Playbook — AD FS DKM keys