Someone can knock out your mail fortress by dropping a poisoned letter in the mailbox slot
CVE-2026-70571 is a stack-based buffer overflow (CWE-121) in Microsoft Exchange Server's internal content-conversion pipeline. An unauthenticated attacker triggers it by sending a specially crafted email to any vulnerable Exchange server — no credentials, no user click, no prior access required. When Exchange processes the message through its content-conversion routines, the malformed data overflows a stack buffer and hands the attacker SYSTEM-level code execution on the mail server itself. Affected versions span the entire on-premises Exchange fleet: Exchange 2016 CU23 (builds < 15.1.2507.77), Exchange 2019 CU14 (< 15.2.1544.50), Exchange 2019 CU15 (< 15.2.1748.55), and Exchange Server Subscription Edition RTM (< 15.2.2562.56). Microsoft patched it on October 13, 2026, and this is the final security update Exchange 2016 and 2019 will ever receive.
Microsoft rates this HIGH at CVSS 8.1 base and labels it *Critical* in their own severity taxonomy, with an exploitability assessment of Exploitation More Likely. The CVSS vector's AC:H reflects that exploitation requires deep environmental knowledge and success is not guaranteed — ZDI called the practical barrier 'substantially high.' That friction is real, but it does not change what this bug *is*: a pre-auth, zero-click, email-deliverable RCE on infrastructure that holds every corporate email, often runs with Exchange Org Admin privileges in Active Directory, and sits on the MX record facing the entire internet. The vendor score of 8.1 underweights the blast radius. History is unambiguous — ProxyLogon, ProxyShell, and ProxyNotShell all started with similar friction assessments and were weaponized within weeks. We upgrade to CRITICAL.
5 steps from start to impact.
Attacker identifies target Exchange server
- Target runs on-premises Exchange (2016 CU23, 2019 CU14/CU15, or SE RTM)
- Exchange server is reachable via SMTP (port 25/587/443)
- Organizations that have fully migrated to Exchange Online are not affected
- Some orgs front Exchange with a cloud email gateway (Mimecast, Proofpoint, Microsoft 365 Defender) that may filter or re-encode messages before relay
http.title:"Outlook Web App" or ssl.cert.subject.CN:mail.*. Qualys QID and Tenable plugin expected within days of patch release.Craft and deliver malicious email
- Knowledge of a valid recipient address (any address at the target domain)
- Ability to craft a payload that triggers the CWE-121 overflow in content conversion
- AC:H — Microsoft states exploitation requires 'deep understanding of the target environment' and is not guaranteed to succeed
- No public PoC or exploit code exists as of October 15, 2026
- Stack buffer overflows on modern Windows require bypassing DEP, ASLR, and CFG mitigations
- Email security gateways may strip or quarantine malformed MIME structures before they reach Exchange
Content-conversion triggers buffer overflow
- Payload must match target Exchange build, architecture, and locale-specific memory layout
- Content-conversion must process the specific message format containing the overflow trigger
- Stack canaries, DEP, ASLR, and CFG on Windows Server 2016/2019/2022/2025 make reliable exploitation materially harder
- Different CU levels and language packs shift memory layouts, requiring per-target tuning
- Exchange's content-conversion has been hardened after years of similar bugs
EdgeTransport.exe and MSExchangeTransport.exe for child process spawning or shellcode injection patterns.SYSTEM-level code execution on Exchange
- Successful exploitation of the buffer overflow in step 3
- EDR/XDR on Exchange servers should detect post-exploitation behaviors (credential dumping, lateral movement, web shell deployment)
- Network segmentation between Exchange and domain controllers can slow lateral movement
w3wp.exe or EdgeTransport.exe spawning cmd.exe/powershell.exe, unexpected .aspx files in Exchange virtual directories, LSASS access from Exchange processes, anomalous LDAP modifications from the Exchange machine account.Worm propagation (theoretical)
Get-ExchangeServer), and send the same crafted email to them — or to partner organizations' Exchange servers via SMTP. Each compromised server becomes a new launch point. This mirrors the ProxyLogon mass-exploitation pattern from 2021.- Multiple unpatched Exchange servers in the organization or across SMTP-connected organizations
- Exploit reliability sufficient for automated propagation
- AC:H makes automated worm propagation unreliable without per-target tuning
- Modern email security stacks would likely quarantine or flag mass-mailed identical payloads
- Most large enterprises have migrated to Exchange Online, reducing the wormable surface
EdgeTransport.exe, MSExchangeTransport.exe, and related Exchange worker processes. This raises the bar for reliable exploitation of the stack buffer overflow. Deploy within 3 days.EdgeTransport.exe, MSExchangeTransport.exe, or w3wp.exe spawning cmd.exe, powershell.exe, certutil.exe, or writing .aspx files to IIS virtual directories. This does not prevent exploitation but ensures rapid detection of post-exploitation activity. Deploy within 3 days.- Restricting OWA/ECP access via firewall does not help — the attack vector is SMTP (port 25), not HTTPS. The content-conversion pipeline is triggered by inbound email delivery, not web access.
- Disabling Exchange ActiveSync or MAPI/HTTP does not help — the vulnerability is in the transport pipeline's content conversion, not in client access protocols.
- Applying Extended Security Updates (ESU) enrollment alone does not help — ESU is a licensing mechanism, not a patch. You must still install the actual KB update.
- Network segmentation between Exchange and DCs slows lateral movement but does not prevent the initial RCE — the attacker still gains SYSTEM on the Exchange server and access to all mailboxes.
The supporting signals.
| In-the-Wild Exploitation | Not observed. Not listed in CISA KEV. Microsoft rates it *Exploitation More Likely* but has not confirmed active exploitation as of October 15, 2026. |
|---|---|
| Proof-of-Concept | No public PoC. Checked pocindex.io, GitHub (no repos named CVE-2026-70571), ExploitDB, and Metasploit — no exploit code available. The SecureWithUmer/CVE-2026-PoCs and asvorg/CVE-2026-PoCs community collections do not include this CVE. |
| EPSS | 0.00927 (0.93%) — approximately 85th percentile. Elevated above median but not in the top tier. Reflects the AC:H constraint and absence of public exploit code. |
| CVSS Vector | CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H — Base 8.1 / Temporal 7.1 (E:U/RL:O/RC:C). Network-accessible, unauthenticated, zero-click. The only downward pressure in the base score is AC:H (conditions beyond the attacker's control). All impact metrics are HIGH. |
| Affected Versions | Exchange 2016 CU23 (< 15.1.2507.77), Exchange 2019 CU14 (< 15.2.1544.50), Exchange 2019 CU15 (< 15.2.1748.55), Exchange SE RTM (< 15.2.2562.56) |
| Fixed Versions | Exchange 2016 CU23: KB5128898 (build 15.1.2507.77) · Exchange 2019 CU14: KB5128897 (15.2.1544.50) · Exchange 2019 CU15: KB5128896 (15.2.1748.55) · Exchange SE RTM SU11: KB5128895 (15.2.2562.56) |
| Internet Exposure | Shodan indexes ~116,000 internet-facing Exchange servers globally (US: ~22,700, DE: ~18,100, CN: ~17,000). A prior Exchange CVE (CVE-2026-62911) found 21,899 servers still unpatched weeks after disclosure — indicating slow patch adoption persists. |
| End-of-Life Warning | This is the final security update for Exchange 2016 and Exchange 2019. No further patches will be issued, even under ESU Period 2. Unpatched servers will remain permanently vulnerable. |
| Disclosure & Credit | Disclosed October 13, 2026 via Microsoft Patch Tuesday. Researcher/reporter not publicly credited in MSRC advisory. |
| IDS Coverage | Cisco Talos released Snort 2 rules (SIDs 1:67210–1:67273) and Snort 3 rules (SIDs 1:301663–1:301694) covering this CVE. |
Sources.
- MSRC Advisory — CVE-2026-70571
- Tenable — October 2026 Patch Tuesday Analysis
- Zero Day Initiative — October 2026 Security Update Review
- Cisco Talos — October 2026 Snort Rules and Prominent Vulnerabilities
- Messageware — Exchange Server October 2026 Patch Tuesday
- EighTwOne — Exchange Security Updates October 2026
- Strix.ai — CVE-2026-70571 Detail
- Shodan — Microsoft Exchange Server Exposure
Why this verdict
- Pre-auth zero-click via email delivery: The attack requires only sending an email to the target — no credentials, no user interaction, no prior access. SMTP delivery to an MX endpoint is trivially achievable by any adversary on the internet. AC:H does not gate *reachability*, only *reliability* of the overflow itself.
- Role multiplier — Exchange is canonically high-value (100% of installs): Every Exchange server IS the organization's mail infrastructure by definition. Compromise yields access to every mailbox, every attachment, every credential cached in LSASS. Exchange machine accounts typically hold WriteDACL on the domain root via Exchange Windows Permissions — a documented path to Domain Admin. This is not 'when deployed in role X'; this IS the role. The blast radius is domain-scale to fleet-scale.
- Wormable characteristics amplify blast radius beyond single-org: ZDI flagged wormable properties. A compromised Exchange server can harvest the GAL, enumerate peer Exchange servers, and relay the payload via SMTP to other organizations. This is the ProxyLogon pattern with a self-propagation vector. Even if reliability is low per-target, the addressable surface (~116K servers) means statistical exploitation at scale.
- Historical precedent demands respect: ProxyLogon (CVE-2021-26855) was AC:L but took the industry by surprise. ProxyShell, ProxyNotShell — every major Exchange RCE has been weaponized, typically within 2-4 weeks of disclosure. AC:H has not historically prevented Exchange exploitation once motivated actors invest in payload development.
- Final patch for 2016/2019 creates permanent exposure: Organizations still running Exchange 2016 or 2019 that miss this patch window will *never* receive a fix. The 21,899 servers found unpatched for CVE-2026-62911 weeks post-disclosure suggest a large residual population will remain vulnerable indefinitely.
- AC:H friction acknowledged but insufficient to break the CRITICAL floor: The CVSS AC:H is meaningful — exploitation requires target-specific environmental knowledge, ASLR/DEP/CFG bypass, and locale-aware payload tuning. No public PoC exists. EPSS is 0.93%. These factors prevent a score of 10.0 but do not change the deployment-role floor: Exchange is in the high-value-role catalog by analogy to network edge appliances and identity infrastructure, and ≥10% of installs (effectively 100%) occupy that role.
Why not higher?
The reassessed score of 9.0 is already CRITICAL, the highest severity bucket. It is not scored at 10.0 because the AC:H constraint is genuine — Microsoft and ZDI both confirm exploitation requires deep environmental knowledge, success is not guaranteed, and no public exploit code demonstrates reliable exploitation. The absence of active exploitation or a working PoC means the *current* threat is potential rather than realized.
Why not lower?
HIGH (the vendor's own rating) underweights the deployment context. Every Exchange server is, by definition, a crown-jewel asset holding all corporate email with elevated AD privileges. The attack vector — sending an email — is the most trivially deliverable payload mechanism in existence; AC:H constrains *reliability*, not *reachability*. The wormable property, the ~116K internet-facing servers, and the historical pattern of rapid Exchange weaponization all compound upward. Downgrading to HIGH would require evidence that the content-conversion code path is not reachable via standard SMTP delivery, or that <1% of Exchange installs are internet-facing — neither is true.
Crowdsourced verification payload.
Run this script on each Exchange server as a local administrator. It checks the installed Exchange build number against the patched builds for each CU level. Invoke: powershell -ExecutionPolicy Bypass -File .\Check-CVE-2026-70571.ps1
#Requires -RunAsAdministrator
<#
.SYNOPSIS
Checks whether the local Exchange Server is patched against CVE-2026-70571.
.DESCRIPTION
Compares installed Exchange build number against fixed builds:
Exchange 2016 CU23: 15.1.2507.77 (KB5128898)
Exchange 2019 CU14: 15.2.1544.50 (KB5128897)
Exchange 2019 CU15: 15.2.1748.55 (KB5128896)
Exchange SE RTM: 15.2.2562.56 (KB5128895)
Exit codes: 0 = PATCHED, 1 = VULNERABLE, 2 = UNKNOWN
#>
$ErrorActionPreference = 'Stop'
try {
$exchangePath = Join-Path $env:ExchangeInstallPath 'bin\ExSetup.exe'
if (-not (Test-Path $exchangePath)) {
$exchangePath = Get-ItemPropertyValue -Path 'HKLM:\SOFTWARE\Microsoft\ExchangeServer\v15\Setup' -Name 'MsiInstallPath' -ErrorAction SilentlyContinue
if ($exchangePath) { $exchangePath = Join-Path $exchangePath 'bin\ExSetup.exe' }
}
if (-not $exchangePath -or -not (Test-Path $exchangePath)) {
Write-Host 'UNKNOWN - Exchange Server not detected on this host.'
exit 2
}
$fileVersion = (Get-Item $exchangePath).VersionInfo.FileVersion
$currentBuild = [version]$fileVersion
Write-Host "Detected Exchange build: $fileVersion"
# Define patched builds per product line
$patchedBuilds = @{
# Exchange 2016 CU23 (15.1.x)
'15.1' = @{ Label = 'Exchange 2016 CU23'; Fixed = [version]'15.1.2507.77'; KB = 'KB5128898' }
# Exchange 2019 CU14 (15.2.1544.x)
'15.2.1544' = @{ Label = 'Exchange 2019 CU14'; Fixed = [version]'15.2.1544.50'; KB = 'KB5128897' }
# Exchange 2019 CU15 (15.2.1748.x)
'15.2.1748' = @{ Label = 'Exchange 2019 CU15'; Fixed = [version]'15.2.1748.55'; KB = 'KB5128896' }
# Exchange SE RTM (15.2.2562.x)
'15.2.2562' = @{ Label = 'Exchange SE RTM'; Fixed = [version]'15.2.2562.56'; KB = 'KB5128895' }
}
$matched = $false
# Try most specific match first
$prefixes = @("$($currentBuild.Major).$($currentBuild.Minor).$($currentBuild.Build)", "$($currentBuild.Major).$($currentBuild.Minor)")
foreach ($prefix in $prefixes) {
if ($patchedBuilds.ContainsKey($prefix)) {
$info = $patchedBuilds[$prefix]
$matched = $true
Write-Host "Product: $($info.Label)"
Write-Host "Fixed build: $($info.Fixed) ($($info.KB))"
if ($currentBuild -ge $info.Fixed) {
Write-Host "PATCHED - CVE-2026-70571 is remediated."
exit 0
} else {
Write-Host "VULNERABLE - Current build $fileVersion is below fixed build $($info.Fixed). Apply $($info.KB) immediately."
exit 1
}
}
}
if (-not $matched) {
Write-Host "UNKNOWN - Exchange build $fileVersion does not match known affected CU levels."
exit 2
}
} catch {
Write-Host "UNKNOWN - Error during check: $_"
exit 2
}