Someone left the master key factory's front door open to anyone with an employee badge
CVE-2026-69676 is a remote code execution vulnerability in the Windows Kerberos authentication protocol. An attacker holding any low-privileged domain credential — the kind you get from a single phished helpdesk intern — can craft a modified Kerberos authentication exchange, replay it to a domain controller, and achieve arbitrary code execution on that DC. The flaw affects all supported Windows Server versions running the Kerberos KDC role (Server 2016, 2019, 2022, and 2025). Microsoft disclosed the bug as part of the September 2026 Patch Tuesday cycle and rates exploitation as "More Likely."
Microsoft's vendor CVSS of 8.8 HIGH undersells this vulnerability. The 8.8 score is mechanically correct for AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H, but the S:U (Scope: Unchanged) designation ignores what "the affected component" actually is: a domain controller. Code execution on a DC *is* domain compromise — the attacker gets NTDS.dit, every Kerberos key, and the ability to forge Golden Tickets for the entire forest. The blast radius is not one host; it is every identity in the organization. This is a CRITICAL vulnerability that demands emergency treatment.
5 steps from start to impact.
Obtain any domain credential
- One valid low-privileged AD credential
- Requires initial credential acquisition — but this is table stakes for nearly every real-world intrusion
Reach a domain controller on the network
- Network connectivity to a DC on port 88
- None in standard AD environments — blocking DC access from clients breaks authentication entirely
Craft and replay modified Kerberos exchange
- Understanding of the replay flaw mechanics
- Tool capable of crafting modified Kerberos exchanges
- No public PoC exists yet as of 2026-09-09 — but Microsoft rates exploitation as 'More Likely' and Kerberos attack tooling (Impacket, Rubeus) is mature and widely available
Achieve code execution on domain controller
- Successful replay from Step 3
- Credential Guard on the DC may limit in-memory credential exposure but does not prevent the initial code execution
Domain compromise and lateral movement
- SYSTEM access on DC from Step 4
- None — once you own a DC, standard AD security controls cannot contain the attacker
The supporting signals.
| In-the-Wild Exploitation | Not confirmed as actively exploited at disclosure. Microsoft rates "Exploitation More Likely." Not currently on CISA KEV. CrowdStrike notes this is "a domain-compromise primitive that Microsoft expects to see exploited." |
|---|---|
| Proof-of-Concept | No public PoC as of 2026-09-09. However, Kerberos attack tooling is exceptionally mature — Impacket, Rubeus, and Mimikatz all have replay and ticket manipulation capabilities. Weaponized tooling is expected to emerge within days to weeks. |
| EPSS Score | Not yet available (CVE disclosed 2026-09-08, EPSS typically populates within 24-72 hours). Given the low attack complexity and high impact, expect a top-decile EPSS score once populated. |
| KEV Status | Not listed as of 2026-09-09. Given Microsoft's "Exploitation More Likely" rating, KEV addition is plausible if exploitation is observed. |
| CVSS Vector | CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H — Network-accessible, low complexity, low privilege required, no user interaction. The S:U (Scope Unchanged) is the only element preventing a 9.8; noisgate considers this misleading given the DC blast radius. |
| Affected Versions | All supported Windows Server versions running the Kerberos KDC role: Windows Server 2016, 2019, 2022, and 2025. Windows 10/11 clients are affected as Kerberos participants but the critical impact path is DC-targeted. |
| Fixed Versions | September 2026 Patch Tuesday cumulative updates (released 2026-09-08). Specific KB numbers per OS build available via Microsoft Update Catalog. |
| Scanning/Exposure Data | Every Active Directory domain controller exposes the Kerberos KDC service (port 88) to all domain-joined clients by design. Shodan/Censys show ~2.4M internet-exposed port 88 endpoints globally, though the primary attack surface is internal. 100% of AD environments have DCs reachable from domain-joined hosts. |
| Disclosure Date | 2026-09-08 (Microsoft September 2026 Patch Tuesday) |
| Reporter | Credited to Proofpoint threat researchers per CrowdStrike analysis. Snort detection rules published by Cisco Talos. |
noisgate verdict.
The single most decisive factor is role multiplier — the affected component is the Kerberos KDC on Active Directory domain controllers, and the chain ends in full domain compromise from any domain user account. Code execution on a DC grants access to NTDS.dit and the krbtgt key, making this a forest-scale identity takeover primitive with no meaningful friction barriers beyond possessing one low-privileged credential.
Why this verdict
- PR:L is trivially satisfied: The only prerequisite is a single domain user credential — obtainable via phishing, credential stuffing, or broker purchase. This is not a meaningful friction point; it is the starting position of virtually every enterprise intrusion.
- Zero network friction: Every domain-joined host must be able to reach DCs on port 88 for Kerberos to function. There is no network segmentation that blocks this without breaking AD authentication entirely.
- Role multiplier — domain controllers are THE canonical high-value identity target: The affected component (Kerberos KDC) runs exclusively on DCs. 100% of installs of this component occupy the highest-value role by definition. A successful chain yields NTDS.dit extraction, krbtgt compromise, and Golden Ticket forgery — this is domain takeover → fleet compromise. Per noisgate floor rules, this is a CRITICAL floor.
- Microsoft expects exploitation: The "Exploitation More Likely" assessment, combined with the maturity of existing Kerberos attack tooling (Impacket, Rubeus), means weaponization is a matter of when, not if. Kerberos replay attacks have been a preferred technique in ransomware intrusions.
- Scope:Unchanged is misleading: The CVSS vector uses S:U, which mechanically caps the base score at 8.8. But code execution on a DC is not "unchanged scope" in any meaningful operational sense — the blast radius is the entire AD forest, every identity, every domain-joined host.
Why not higher?
A 10.0 would require unauthenticated access (PR:N) and no prerequisites whatsoever. This vulnerability does require one valid low-privileged credential, which represents a real (if thin) barrier. Additionally, there is no confirmed active exploitation or public PoC yet, so the immediacy of the threat is slightly below a wormable unauthenticated RCE.
Why not lower?
Downgrading below CRITICAL is not defensible. The target component is the Kerberos KDC, which by definition only runs on domain controllers — 100% of affected installs are in the highest-value identity role. The chain from any domain user to full domain compromise has zero network friction and trivially satisfied prerequisites. The blast radius is forest-wide identity takeover. Per noisgate floor rules, when the affected component canonically occupies the high-value identity role and the outcome is domain takeover, the verdict floor is CRITICAL regardless of the PR:L friction point.
What to do — in priority order.
- Emergency-patch all domain controllers within 72 hours — This is the only definitive fix. DCs should be the first hosts patched — not last. Under the noisgate mitigation SLA for CRITICAL, deploy within 3 days. Coordinate with your AD team for staged DC reboots to maintain quorum.
- Deploy Talos Snort rules on network sensors covering DC traffic — Apply Snort 2 SIDs 67011-67032, 67036-67084 and Snort 3 SIDs 301619-301629, 301632-301655 on IDS/IPS sensors monitoring traffic to DCs. This provides detection and potential blocking of exploitation attempts while patching is in progress.
- Enable enhanced Kerberos logging on all DCs — Enable Windows Event IDs 4768, 4769, 4771 at verbose level and forward to SIEM. Configure alerts for anomalous TGS-REQ patterns, replay indicators, and unexpected ticket lifetimes. This won't prevent exploitation but gives you visibility.
- Harden DC process monitoring via EDR — Ensure EDR agents on DCs are configured with high-fidelity rules for unexpected child processes of lsass.exe and anomalous SYSTEM-context process creation. This detects post-exploitation activity if the replay succeeds.
- Audit and reduce domain user population — Disable or remove unnecessary domain accounts (service accounts with interactive logon, stale user accounts, test accounts). Every valid credential is a potential entry point. Reducing the credential surface area limits the pool of accounts an attacker can leverage.
- Network segmentation between clients and DCs — Kerberos requires direct client-to-DC communication on port 88. You cannot firewall this without breaking authentication for the entire domain.
- MFA on user workstations — MFA protects the initial logon but does not prevent an attacker who already possesses a valid credential (or NTLM hash) from crafting Kerberos exchanges directly against the DC.
- Credential Guard on DCs — Credential Guard protects credentials in memory from extraction but does not prevent the initial code execution via the replay flaw. The attacker achieves SYSTEM first, then can work around Credential Guard.
- Disabling NTLM — This is a Kerberos-native flaw, not an NTLM relay or downgrade attack. Disabling NTLM has no effect on this attack path.
Crowdsourced verification payload.
Run on each domain controller as a local administrator. Execute: powershell -ExecutionPolicy Bypass -File .\Check-CVE-2026-69676.ps1. The script checks whether the September 2026 cumulative update has been applied by examining the OS build number against the patched baseline.
#Requires -RunAsAdministrator
<#
.SYNOPSIS
Checks whether CVE-2026-69676 (Windows Kerberos capture-replay RCE) is patched.
.DESCRIPTION
Verifies the September 2026 cumulative update is installed by checking
the OS build revision against known patched baselines.
Run on each Domain Controller as Administrator.
.OUTPUTS
VULNERABLE, PATCHED, or UNKNOWN with exit codes 1, 0, 2.
#>
$ErrorActionPreference = 'Stop'
# September 2026 Patch Tuesday patched build revisions (minimum)
# These are approximate baselines; adjust KB-specific revisions as Microsoft publishes them
$patchedBuilds = @{
# Server 2016 (build 14393)
14393 = 8200
# Server 2019 (build 17763)
17763 = 7100
# Server 2022 (build 20348)
20348 = 5600
# Server 2025 (build 26100)
26100 = 3200
}
try {
$os = Get-CimInstance Win32_OperatingSystem
$build = [System.Environment]::OSVersion.Version.Build
$revision = (Get-ItemProperty 'HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion' -Name UBR).UBR
$isDC = (Get-CimInstance Win32_ComputerSystem).DomainRole -ge 4
Write-Host "Host: $($env:COMPUTERNAME)"
Write-Host "OS: $($os.Caption)"
Write-Host "Build: $build.$revision"
Write-Host "Domain Role: $(if ($isDC) { 'Domain Controller' } else { 'Member Server / Workstation' })"
Write-Host '---'
if (-not $isDC) {
Write-Host '[INFO] This host is not a Domain Controller. The critical attack path targets DCs.'
Write-Host '[INFO] Checking patch status anyway as Kerberos clients are also affected.'
}
if ($patchedBuilds.ContainsKey($build)) {
$requiredRevision = $patchedBuilds[$build]
if ($revision -ge $requiredRevision) {
Write-Host "PATCHED - Build $build.$revision meets or exceeds patched baseline $build.$requiredRevision"
exit 0
} else {
Write-Host "VULNERABLE - Build $build.$revision is below patched baseline $build.$requiredRevision"
Write-Host 'ACTION: Apply the September 2026 cumulative update immediately on this DC.'
exit 1
}
} else {
# Check for September 2026 KB via hotfix history as fallback
$septKBs = Get-HotFix | Where-Object { $_.InstalledOn -ge [datetime]'2026-09-08' } | Select-Object -ExpandProperty HotFixID
if ($septKBs.Count -gt 0) {
Write-Host "UNKNOWN - Unrecognized build $build but recent KBs found: $($septKBs -join ', ')"
Write-Host 'Verify manually that the September 2026 cumulative update is among them.'
exit 2
} else {
Write-Host "VULNERABLE - Unrecognized build $build.$revision with no September 2026 patches detected."
exit 1
}
}
} catch {
Write-Host "UNKNOWN - Error during check: $_"
exit 2
}If you remember one thing.
Sources
- CrowdStrike September 2026 Patch Tuesday Analysis
- Tenable September 2026 Patch Tuesday Coverage
- Cisco Talos September 2026 Snort Rules
- Help Net Security – September 2026 Patch Tuesday Analysis
- Qualys September 2026 Patch Tuesday Review
- Alexander Leonov September 2026 Patch Tuesday Recap
- IT-Connect September 2026 Patch Tuesday Summary
- MITRE CWE-294: Authentication Bypass by Capture-Replay
What defenders are saying.
Crowdsourced verification outputs.
Results submitted by users who ran the verification payload against their environment.