CVE-2026-56155 — AD FS Distributed Key Manager ACL Weakness → Golden SAML
Executive Summary
CVE-2026-56155 is an actively-exploited elevation-of-privilege flaw in Microsoft Active Directory Federation Services (AD FS), patched in the July 2026 "Patch Tuesday". Microsoft classifies it as "insufficient granularity of access control" around the AD FS Distributed Key Manager (DKM) container. AD FS stores, inside a container object in Active Directory, the symmetric key that protects the private keys of its token-signing and token-decryption certificates. If that container's ACL is overly permissive, an attacker who already holds read access to the DKM key material can decrypt the token-signing private key. Zero Day Initiative analysts flagged it as the only actively-exploited AD FS bug among several Microsoft patched this cycle; CISA added it to the KEV catalog on 2026-07-14.
Recovery of the token-signing key is the doorway to Golden SAML (MITRE T1606.002): with the signing key an attacker forges SAML authentication tokens that downstream relying parties — Microsoft 365, Entra ID, and any SAML-federated SaaS — accept as legitimate, because each token carries a valid federation signature. A Golden SAML token can assert any user, any group, at any MFA level. It is not stopped by password resets or MFA, and it survives long after the initial foothold: the only durable fix is to remediate the DKM ACL and rotate the token-signing / decryption certificates.
The defensive challenge is that the crown-jewel step — decrypting the key and minting tokens — happens offline, so it produces little direct endpoint telemetry. The hunt therefore anchors on the reachable tradecraft around it: execution of known AD FS / Golden-SAML dumping tooling (AADInternals, ADFSDump, Mimikatz), the AD FS service host spawning shells, processes referencing the DKM container or token-signing cert, directory reconnaissance of the AD FS configuration objects, and the native Event ID 1132 the July update now logs when the DKM ACL is insecure.
Defender priority: Treat every AD FS server as a Tier-0 asset and assume the token-signing key is at risk until proven otherwise. Do three things now — (1) apply the July 2026 AD FS update and set the RemediateDkmAcl registry key to enforce (audit mode alone only logs), (2) audit who can read the DKM container and remove all but the AD FS service account, and (3) rotate the token-signing and token-decryption certificates twice and re-establish federation trust. Then hunt with Q1–Q6 and the S7 native audits.
Source Review & Web Hunter Notes
| Tier | Source | Key Finding | Carry Fwd |
|---|---|---|---|
| 1 · Gov | CISA KEV (2026-07-14) | Added CVE-2026-56155 to KEV; active exploitation confirmed; part of a four-CVE batch alongside SonicWall SMA1000 and SharePoint. | Yes |
| 1 · Vendor | Microsoft MSRC / KB5121391 | "Insufficient granularity of access control" on the AD FS DKM container; July update adds an audit mode logging Event ID 1132 when the DKM ACL is insecure; RemediateDkmAcl reg key opts into enforcement; auto-remediation on 2026-10-13. | Yes |
| 1 · Vendor | Zero Day Initiative — July 2026 review | Flagged CVE-2026-56155 as the only AD FS bug actively exploited this cycle; read access to DKM material yields the token-signing private key. | Yes |
| 2 · Research | NVD / DailyCVE | AD FS EoP; DKM stores symmetric keys protecting token-signing & token-encryption certificate private keys; recovery enables forged federation tokens. | Yes |
| 2 · News | SecurityAffairs / Windows Forum (2026-07-15) | Golden SAML pattern (T1606.002); forged tokens bypass MFA and password resets; remediation requires certificate rotation, not just patching. | Partial |
Intel gap (perishability): As of the pack date no vendor has published campaign-specific atomic IOCs (tool hashes, C2, actor infrastructure) tied to CVE-2026-56155 exploitation. This pack is therefore behavior-anchored; the IOC appendix ships REPLACE_WITH_… placeholders to fill the moment your IR team or a vendor report yields campaign atomics. No atomic indicator here is fabricated.
Hunt Brief & Attack Chain
Hunt hypotheses (fidelity-ordered)
| # | Hypothesis | MITRE | Conf |
|---|---|---|---|
| H1 | Known AD FS / Golden-SAML dumping tooling (AADInternals, ADFSDump, Mimikatz adfs) runs on or against an AD FS server — direct key-theft tradecraft. | T1606.002, T1552.004 | HIGH |
| H2 | The AD FS service host (Microsoft.IdentityServer.ServiceHost.exe) spawns a command interpreter or script host — post-exploit hands-on-keyboard on the AD FS box. | T1059, T1190 | HIGH |
| H3 | A process references the AD FS DKM container, CryptoPolicy/contactPoint config objects, or exports AD FS properties/certificates — key-material access. | T1552.004, T1606.002 | MED |
| H4 | Directory-recon LOLBINs (ldifde, dsquery, nltest, Get-ADObject) enumerate the AD FS configuration / DKM group — target discovery before the read. | T1087, T1482 | MED |
| H5 | An AD FS server makes anomalous outbound connections from a shell or dumping tool — exfil of the signing key / tool C2. | T1071.001, T1041 | MED |
| H6 | A scheduled task or service is registered on an AD FS server post-exploit — persistence beyond the forged-token access. | T1053.005, T1543.003 | MED |
Attack chain
| Step | Behavior | Telemetry | Hunt angle |
|---|---|---|---|
| 1 · Foothold | Attacker gains code execution / read rights reaching the AD FS server or DKM material. | ProcessRollup2; UserLogon | Q2, S7 |
| 2 · Discovery | Enumerate AD FS config objects & the DKM container in AD. | ProcessRollup2 (CommandLine); DS access 4662 | Q4, S7 |
| 3 · Key access | Read the over-permissive DKM container; recover the symmetric key. | ProcessRollup2; native 4662 / 1132 | Q3, S7 |
| 4 · Key theft | Decrypt/export the token-signing private key (AADInternals / ADFSDump / Mimikatz). | ProcessRollup2 (CommandLine) | Q1 |
| 5 · Forge (Golden SAML) | Mint SAML tokens for arbitrary users/roles — offline, off the AD FS host. | — (offline; IdP-side) | S7 correlation; GAP |
| 6 · Use / persist | Present forged tokens to M365/SaaS; register task/service or leave trust backdoor. | Cloud sign-in logs; ScheduledTaskRegistered | Q5, Q6, S7 |
Consolidated IOC Table
This is a behavior-first pack. The atomic rows below are placeholders to be populated from your IR findings or a vendor report; the behavioral rows are the operative indicators today.
| Type | Value | Conf | Action | Context |
|---|---|---|---|---|
| Behavior | Microsoft.IdentityServer.ServiceHost.exe → cmd/powershell/cscript | high | detect | Hands-on-keyboard on AD FS (H2) |
| Behavior | CommandLine referencing AADInternals / Export-AADIntADFS / ADFSDump / Mimikatz adfs | high | detect | Token-signing key theft (H1) |
| Behavior | CommandLine referencing CryptoPolicy / contactPoint / Get-AdfsProperties / DKM | medium | hunt | DKM / key-material access (H3) |
| Event | AD FS Admin Event ID 1132 (insecure DKM container ACL) | high | hunt | Exposure signal (native audit) |
| CVE | CVE-2026-56155 | high | detect | Patch / RemediateDkmAcl state = exposure signal |
| SHA256 | REPLACE_WITH_SHA256 (dumping tool / payload) | — | detect | Populate from IR |
| IPv4 | REPLACE_WITH_C2_IP (tool C2 / exfil) | — | hunt | Populate from IR / netflow |
Affected Surface & Telemetry Matrix
| Surface | Required telemetry | Priority | Gap risk |
|---|---|---|---|
| AD FS servers (all farm nodes + WAP proxies) | Falcon sensor on every AD FS / WAP host (ProcessRollup2, network) | CRITICAL | Low if sensor deployed |
| Domain controllers (DKM container reads) | Directory Service Access auditing (Event 4662) forwarded to Falcon NGSIEM / LogScale | HIGH | High — 4662 rarely enabled on the DKM object |
| AD FS Admin event channel | Event 1132 (DKM ACL) + 1200/1202 token issuance forwarded | HIGH | Medium — needs WEF / channel forwarding |
| Federated cloud sign-in (M365 / Entra) | Entra sign-in & audit logs (non-Falcon) | HIGH | High — required to catch forged-token use |
| Token-forgery step | — (offline, off-host) | N/A | Full gap — remediate via key rotation, not detection |
ATT&CK Mapping
| Tactic | Technique | Behavior | Query / Control |
|---|---|---|---|
| Discovery | T1087 / T1482 Account & Trust Discovery | Enumerate AD FS config / DKM group | Q4, S7 |
| Credential Access | T1552.004 Private Keys | Recover token-signing private key from DKM | Q1, Q3 |
| Execution | T1059 Command & Scripting Interpreter | AD FS service host spawns a shell | Q2 |
| Credential Access | T1606.002 Forge Web Credentials: SAML (Golden SAML) | Mint forged federation tokens | S12 (cert rotation) |
| Lateral / Priv Esc | T1550.001 Application Access Token | Present forged token to relying parties | S7 (cloud sign-in) |
| Persistence / Initial Access (cloud) | T1078.004 Cloud Accounts | Authenticate to M365/SaaS as any user | S7, S14 |
| Command & Control / Exfil | T1071.001 / T1041 | Tool C2 / signing-key exfil from AD FS host | Q5 |
| Persistence | T1053.005 / T1543.003 Task / Service | Task or service on the AD FS server | Q6 |
Native Audit-Log Hunts (non-CQL)
- AD FS Admin — Event ID 1132: After the July 2026 update, this event is logged when the DKM container ACL is insecure. Every 1132 is a direct exposure signal — triage the host and remediate the ACL. Also review Events 307 / 510 (configuration changes) and 1200 / 1202 (token issuance) for anomalies.
- Directory Service Access — Event 4662: Enable SACL auditing on the AD FS DKM container object and alert on reads by any principal other than the AD FS service account. This is the closest thing to catching the key-material read directly.
- Golden-SAML correlation: Forged tokens are minted off AD FS, so there is no corresponding AD FS 1200/1202 issuance event for them. Hunt Entra / M365 sign-ins that assert federation but have no matching on-prem AD FS authentication in the same window — especially with unusual
IssuerUri, impossible travel, or authentication-instant skew. - Federation trust tampering: Review Entra ID audit logs for new or modified federated domains / issuance signing certificates (a related backdoor: adding an attacker-controlled token-signing cert). Alert on
Set-MsolDomainFederationSettings/ domain-federation changes. - DKM ACL baseline: Snapshot the ACL on the DKM container and the membership of any group granted read; diff periodically.
CrowdStrike LogScale CQL Hunt Queries
Looks for: the command-line fingerprints of the tools used to extract an AD FS token-signing key — AADInternals (Export-AADIntADFSSigningCertificate / Export-AADIntADFSCertificates), ADFSDump, and Mimikatz's adfs module. These strings are almost never benign on a production AD FS server.
// HUNT: AD FS token-signing key theft tooling (AADInternals / ADFSDump / Mimikatz adfs) // MITRE: T1606.002, T1552.004 // CONF: high FP: low COST: low | REQUIRES: ProcessRollup2 #event_simpleName=/ProcessRollup2|SyntheticProcessRollup2/ | CommandLine=/(AADInternals|Export-AADInt|ADFSDump|Get-AADIntADFS|Export-ADFS|mimikatz|sekurlsa|adfs::)/i | table([ComputerName, UserName, ParentBaseFileName, FileName, CommandLine, aid], limit=200)
Looks for: the AD FS service host process spawning a shell or script host — hands-on-keyboard activity on a box that should almost never launch interactive interpreters. High-fidelity on a healthy farm.
// HUNT: AD FS service host spawning a shell / script host (hands-on-keyboard) // MITRE: T1059, T1190 // CONF: high FP: low COST: low | REQUIRES: ProcessRollup2 #event_simpleName=/ProcessRollup2|SyntheticProcessRollup2/ | ParentBaseFileName=/^Microsoft\.IdentityServer\.ServiceHost\.exe$/i | FileName=/^(cmd|powershell|pwsh|cscript|wscript|mshta|net1?|whoami|nltest)\.exe$/i | table([ComputerName, UserName, ParentBaseFileName, FileName, CommandLine, aid], limit=200)
Looks for: a process reading or exporting the AD FS DKM container / cryptographic policy or dumping AD FS properties — the material an attacker needs to recover the signing key. FP: AD FS administrators and monitoring tools legitimately run Get-AdfsProperties — pivot on non-admin/service context and correlate with Q2 in the same window.
// HUNT: DKM container / token-signing config / AD FS properties access // MITRE: T1552.004, T1606.002 // CONF: high FP: med COST: low | REQUIRES: ProcessRollup2 // TUNING: exclude sanctioned AD FS admin hosts & monitoring agents; require non-service context #event_simpleName=/ProcessRollup2|SyntheticProcessRollup2/ | CommandLine=/(CryptoPolicy|contactPoint|Get-AdfsProperties|ADFS.*DKM|DKM.*ADFS|Token-Signing|msDS-KeyPrincipal)/i | table([ComputerName, UserName, ParentBaseFileName, FileName, CommandLine, aid], limit=200)
Looks for: directory-recon LOLBINs querying the AD FS configuration / DKM group before a read. FP: IT admins and inventory tooling use dsquery/Get-ADObject — scope to AD FS-referencing command lines and correlate with the same host/actor as Q2/Q3.
// HUNT: LDAP/AD recon of AD FS configuration or DKM objects // MITRE: T1087, T1482 // CONF: med FP: med COST: low | REQUIRES: ProcessRollup2 // TUNING: exclude sanctioned admin/inventory hosts; keep only ADFS/DKM-referencing command lines #event_simpleName=/ProcessRollup2|SyntheticProcessRollup2/ | FileName=/^(ldifde|dsquery|adfind|nltest|repadmin)\.exe$/i | CommandLine=/(ADFS|CryptoPolicy|DKM|Federation|contactPoint)/i | table([ComputerName, UserName, ParentBaseFileName, FileName, CommandLine, aid], limit=200)
Looks for: outbound connections initiated by a shell / dumping tool on an AD FS server — these hosts should originate almost no direct internet egress. FP: Windows Update / telemetry and internal farm/SQL traffic — exclude RFC1918 farm ranges and known Microsoft endpoints; keep shell/tool-parented connections.
// HUNT: AD FS host egress from a shell / dumping tool (C2 or signing-key exfil) // MITRE: T1071.001, T1041 // CONF: med FP: med COST: med | REQUIRES: NetworkConnectIP4 // TUNING: exclude internal farm/SQL subnets & Microsoft update endpoints; keep shell-parented #event_simpleName=/NetworkConnectIP4/ | ContextBaseFileName=/^(cmd|powershell|pwsh|certutil|bitsadmin|curl|rundll32)\.exe$/i | RemotePort=/^(80|443|8080|8443|4444|53)$/ | table([ComputerName, ContextBaseFileName, RemoteAddressIP4, RemotePort, aid], limit=200)
Looks for: post-exploit persistence on the AD FS server beyond the forged-token access. Scope the result set to your AD FS / WAP host group. FP: patch, backup, and monitoring agents register tasks/services legitimately — exclude known management software by image path and author.
// HUNT: scheduled task / service registration on an AD FS server (persistence) // MITRE: T1053.005, T1543.003 // CONF: med FP: med COST: low | REQUIRES: ScheduledTaskRegistered / ServiceInstalled // TUNING: exclude patch/backup/monitoring agents by ServiceImagePath & TaskAuthor #event_simpleName=/ScheduledTaskRegistered|CreateService|ModifyServiceBinary/ | table([ComputerName, UserName, ScheduledTaskName, ServiceName, ServiceImagePath, aid], limit=200)
CrowdStrike Custom IOA Recommendations
| IOA | Pattern | Action | Exclusions |
|---|---|---|---|
| AD FS key-dump tooling | CommandLine contains AADInternals / Export-AADIntADFS / ADFSDump / adfs:: | Detect → Block (high conf) | None expected on production AD FS |
| AD FS service-host shell spawn | Parent Image ends \Microsoft.IdentityServer.ServiceHost.exe AND Image = cmd/powershell/cscript/wscript/mshta | Detect → Block | Sanctioned AD FS maintenance runbook host (validate first) |
| DKM / token-signing access | CommandLine contains CryptoPolicy / contactPoint / Get-AdfsProperties in non-admin context | Detect | Sanctioned AD FS admin PAW |
Promote Q1 and Q2 to blocking IOAs immediately (near-zero legitimate use); keep Q3–Q6 as investigate-only scheduled searches until tuned to your farm.
Machine-Readable IOC Appendix
type,value,action,severity,expiration,description,tags sha256,REPLACE_WITH_SHA256,prevent,critical,2027-01-17,CVE-2026-56155 AD FS key-dump tool,campaign:ADFS-56155 ipv4,REPLACE_WITH_C2_IP,detect,high,2026-10-17,CVE-2026-56155 tool C2 / exfil,campaign:ADFS-56155 domain,REPLACE_WITH_C2_DOMAIN,detect,high,2026-10-17,CVE-2026-56155 C2,campaign:ADFS-56155
CommandLine ~ AADInternals|Export-AADIntADFS|ADFSDump|adfs:: (signing-key theft) Microsoft.IdentityServer.ServiceHost.exe -> cmd|powershell (AD FS shell spawn) CommandLine ~ CryptoPolicy|contactPoint|Get-AdfsProperties (DKM / key access) ldifde|dsquery|adfind with ADFS|DKM|Federation (config recon)
AD FS Admin 1132 Insecure DKM container ACL (July 2026 audit mode) — exposure signal AD FS Admin 1200 Token issued (baseline for Golden-SAML correlation) AD FS Admin 1202 Token validation Security 4662 Directory Service Access — read of the DKM container object Entra audit New/modified federated domain or issuance signing cert
# On each AD FS server: Get-HotFix | Sort-Object InstalledOn -Descending | Select-Object -First 5 # Confirm July 2026 AD FS update present, then confirm enforcement (not just audit): Get-ItemProperty "HKLM:\SOFTWARE\Microsoft\ADFS" -Name RemediateDkmAcl -ErrorAction SilentlyContinue # List AD FS certificates and their thumbprints (rotate token-signing after remediation): Add-PSSnapin Microsoft.Adfs.PowerShell -ErrorAction SilentlyContinue Get-AdfsCertificate | Select-Object CertificateType, Thumbprint, NotAfter, IsPrimary
Detection Validation Gates
- Telemetry ready: Confirm Falcon sensors are installed and reporting on every AD FS farm node and Web Application Proxy, and that DC Event 4662 SACL auditing on the DKM object plus the AD FS Admin channel (1132/1200) are forwarded to LogScale / NGSIEM.
- Benign baseline: Run Q3 and Q4 across a normal admin/maintenance window first to learn legitimate
Get-AdfsPropertiesand inventory noise, then apply the TUNING exclusions before alerting. - Positive test: In a lab, run a benign command line containing the string
Export-AADIntADFSSigningCertificateand confirm Q1 fires; launchcmd.exefrom the AD FS service-host context and confirm Q2 fires. - Promotion: Q1/Q2 can go to blocking IOAs immediately given near-zero legitimate use; baseline Q3–Q6 for a rolling week before promotion.
Hardening — Tiered
- Patch & enforce: Apply the July 2026 AD FS update to all farm nodes, then set
RemediateDkmAclto enforce the hardened DKM container ACL (audit mode only logs Event 1132 — it does not fix the ACL). MITRE M1051, M1015. - Rotate token-signing & token-decryption certificates twice (with a short overlap) after the ACL is remediated, and re-establish trust with Entra ID / relying parties. This is what invalidates a key that may already be stolen. Per Golden-SAML guidance; MITRE M1015.
- Lock down DKM read access: Audit the DKM container ACL and remove every principal except the AD FS service account; enable Event 4662 SACL auditing on the object. MITRE M1015, M1018.
- Treat AD FS as Tier-0: Administer only from Privileged Access Workstations; remove standing local-admin; apply the AD FS / DC security baseline. MITRE M1026, M1047.
- Restrict AD FS host egress: AD FS servers should not originate arbitrary outbound internet traffic — allow-list required endpoints only. MITRE M1037.
- Forward AD FS auditing: Enable verbose AD FS security auditing (token issuance 1200/1202, config 307/510) and Entra federation-change alerts to SIEM. MITRE M1047.
- Migrate off AD FS to Entra ID (managed authentication / passthrough), Microsoft's long-term recommendation — this removes the on-prem token-signing key as a theft target entirely. MITRE M1015 (architecture).
- Application allow-listing (WDAC/AppLocker) on AD FS servers so the service host cannot launch cmd/powershell/dumping tools. MITRE M1038.
- Conditional Access hardening: Note that CA/MFA do not stop a Golden SAML token; pair token-issuance monitoring with device-bound / phishing-resistant auth on the cloud side as defense-in-depth. MITRE M1032 (partial).
Deployable Playbooks
Confirm the DKM ACL remediation is ENFORCED (not just audit)
# Audit mode logs Event 1132; enforcement fixes the ACL. Confirm/opt into enforcement.
# Per Microsoft KB5121391 — set on each AD FS server, then restart the AD FS service.
New-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\ADFS" -Name RemediateDkmAcl `
-Value 1 -PropertyType DWORD -Force
Restart-Service adfssrv
# Verify no further Event 1132 is logged in the AD FS/Admin channel after restart:
Get-WinEvent -LogName "AD FS/Admin" -MaxEvents 200 |
Where-Object { $_.Id -eq 1132 } | Select-Object TimeCreated, Id, Message
Rotate AD FS token-signing / decryption certificates (run after ACL remediation)
Add-PSSnapin Microsoft.Adfs.PowerShell -ErrorAction SilentlyContinue # Temporarily allow AD FS to manage new self-signed certs, then roll twice. Set-AdfsProperties -AutoCertificateRollover $true Update-AdfsCertificate -CertificateType Token-Signing -Urgent Update-AdfsCertificate -CertificateType Token-Decrypting -Urgent # Repeat the Token-Signing roll a second time so the previously-primary key is retired: Update-AdfsCertificate -CertificateType Token-Signing -Urgent # Re-push federation metadata to Entra ID and every relying party: Update-MSOLFederatedDomain -DomainName "internal-host.example.com" -SupportMultipleDomain
Audit who can read the DKM container
# Locate the AD FS DKM group/container and dump its ACL; only the AD FS service
# account should have read on the key material.
Import-Module ActiveDirectory
$adfs = Get-ADObject -LDAPFilter "(name=ADFS)" -SearchBase (Get-ADRootDSE).defaultNamingContext `
-SearchScope Subtree
$adfs | ForEach-Object {
Write-Host "== $($_.DistinguishedName) =="
(Get-Acl "AD:$($_.DistinguishedName)").Access |
Select-Object IdentityReference, ActiveDirectoryRights, AccessControlType | Format-Table -Auto
}
Containment Runbook
| Phase | Actions | Owner | Evidence |
|---|---|---|---|
| Isolate | Network-contain suspect AD FS / WAP hosts in Falcon; block their outbound egress. Do NOT power off (preserve memory / tooling artifacts). | SOC / IR | Falcon host timeline; 4662 / 1132 events |
| Eradicate | Remove dumping tools and any task/service persistence; enforce the DKM ACL; rotate token-signing + token-decryption certs twice (mandatory — otherwise forged tokens keep working); patch to July 2026 build. | AD FS admin / IR | Cert thumbprints pre/post; ACL diff |
| Invalidate tokens | Revoke Entra refresh tokens / sessions org-wide (Revoke-AzureADUserAllRefreshToken or Entra "revoke sessions"); re-establish federation trust with the new signing cert; assume all federated SaaS sessions were forgeable. | IAM | Revocation logs |
| Credential reset | Reset the AD FS service account and any privileged accounts a forged token could have impersonated; review recently created / elevated cloud accounts. | IAM | Reset tickets; Entra audit |
| Recover / report | Return AD FS to service only after ACL enforce + double cert roll + patched build; monitor Q1–Q6 and Golden-SAML correlation for 30 days. Federal agencies: track against KEV due date. | SOC / IR lead | Clean hunt runs; KEV record |
Detection Coverage Map
| Technique | Behavior | CQL | IOA | Coverage |
|---|---|---|---|---|
| T1087 / T1482 Discovery | AD FS / DKM config recon | Q4 | — | Partial |
| T1059 Execution | Service host spawns shell | Q2 | Yes | Good |
| T1552.004 Private Keys | Key-dump tooling | Q1, Q3 | Yes | Good |
| T1606.002 Golden SAML (mint) | Forge tokens offline | GAP | — | GAP |
| T1550.001 / T1078.004 Token use | Present forged token to M365 | — (Entra logs, S7) | — | Partial |
| T1071.001 / T1041 C2 / Exfil | AD FS host egress | Q5 | — | Partial |
| T1053.005 / T1543.003 Persistence | Task / service | Q6 | — | Partial |
| DKM container read | Direct key-material access | — (Event 4662 native) | — | Partial |
Gaps: The token-forgery step is performed off the AD FS host and endpoint telemetry cannot see it — the only reliable control is certificate rotation (S12/S14), not detection. Forged-token use is visible only in Entra / M365 sign-in logs (S7 correlation), and the DKM read is best caught with DC Event 4662 SACL auditing. Populate the atomic IOC placeholders (S10) once IR yields tool hashes / C2.
Hunt Summary Ticket
TITLE: CVE-2026-56155 — AD FS DKM ACL -> Golden SAML (exploited ITW) SEVERITY: Critical (KEV 2026-07-14) SCOPE: All AD FS farm nodes + WAP proxies; federated M365/Entra tenants HYPOTHESIS: DKM ACL read -> token-signing key theft -> forged SAML tokens for any user QUERIES: Q1 dump tooling | Q2 svc-host shell | Q3 DKM/cert access | Q4 AD recon | Q5 host egress | Q6 task/service DO FIRST: (1) Patch + set RemediateDkmAcl=enforce (2) lock DKM ACL to svc acct (3) rotate token-signing/decrypt certs x2 + re-federate FINDINGS: ____ (populate: hosts, tools seen, cert-rotation status, Event 1132 count) GAPS: Token forgery is offline (rotate certs); forged-token use = Entra logs only; DKM read = 4662 native ACTIONS: Contain -> eradicate + enforce ACL -> rotate certs -> revoke tokens -> 30-day watch OWNER: ____ VERSION: v0.2 (2026-07-17)
Changelog
table() calls now carry an explicit row limit: the default is 200 and truncation is silent, so a capped result was indistinguishable from a complete one. Atomic-IOC sweeps (filters over 5+ hashes or C2 IPs) use limit=max so a wide infection is never silently under-scoped; behavioural hunts use limit=200, where exceeding the cap indicates the query needs tuning. Where present, event names that do not exist in the Falcon data model were corrected (e.g. ServiceInstalled is a Sysmon concept, not a Falcon event; ElfFileWritten is ELFFileWritten) — such queries could never return a row. No detection logic, fields, or IOCs changed.References
| Tier | Source | Used For | Accessed |
|---|---|---|---|
| 1 · Gov | CISA — Adds Four KEV (2026-07-14) | KEV listing, active exploitation, four-CVE batch | 2026-07-17 |
| 1 · Vendor | Microsoft KB5121391 — AD FS DKM container ACL hardening | Vuln class, audit mode / Event 1132, RemediateDkmAcl, auto-remediation date | 2026-07-17 |
| 1 · Vendor | Zero Day Initiative — July 2026 Security Update Review | Only actively-exploited AD FS bug this cycle; key-recovery impact | 2026-07-17 |
| 2 · Research | NVD — CVE-2026-56155 | DKM stores symmetric keys protecting token-signing/decryption certs | 2026-07-17 |
| 2 · News | SecurityAffairs — CISA adds SonicWall & Microsoft flaws | Golden SAML pattern; forged tokens bypass MFA / password reset | 2026-07-17 |
| 2 · Ref | MITRE ATT&CK — T1606.002 Forge Web Credentials: SAML Tokens | Golden SAML technique framing & mitigations | 2026-07-17 |