← Back to Feed CACHED · 2026-05-17 09:42:19 · cache_key CVE-2025-29912
CVE-2026-42897 · CWE-79 · Disclosed 2026-05-14

Improper neutralization of input during web page generation

ASSESSED — NOISGATE V0.5
Vendor
Reassessed
Verdict:
01 · The Real Story

This is a poisoned note slipped into the mailroom that only detonates when someone reads it through the web kiosk

CVE-2026-42897 is an XSS flaw in on-prem Exchange OWA that lets an unauthenticated attacker send a crafted email which can execute attacker-controlled JavaScript when the victim opens it in Outlook on the web and the required interaction conditions are met. Microsoft says Exchange Server 2016, Exchange Server 2019, and Exchange Server Subscription Edition are affected at any update level; Exchange Online is not affected.

The vendor's HIGH 8.1 is directionally fair, but the operational story is narrower than that score implies. This is not pre-auth Exchange server RCE: the code runs in the victim's browser session, needs user interaction, and only matters where OWA is actually used and reachable. What keeps it firmly in the urgent lane is the KEV listing and confirmed active exploitation, plus the fact that email/session access on Exchange is high-value even without host-level code execution.

"KEV-listed Exchange OWA XSS is urgent, but it is still a session hijack, not a server-takeover bug."
02 · The Attack Path

4 steps from start to impact.

STEP 01

Deliver a crafted email payload

The attacker weaponizes a malicious email that causes OWA to reflect or render attacker-controlled script in the victim's browser context. The delivery mechanism is ordinary mail flow, so no prior authentication to Exchange is needed beyond the ability to send email to the target organization. Weaponized tool: *crafted HTML/email content* as described by Microsoft Exchange Team guidance.
Conditions required:
  • Target organization runs on-prem Exchange 2016/2019/SE
  • Target user receives attacker-controlled email
  • OWA is enabled for the target mailbox population
Where this breaks in practice:
  • Mail hygiene, URL detonation, and secure email gateways can strip or quarantine obviously malicious content
  • If users primarily read mail in Outlook desktop/mobile instead of OWA, the chain dies here
Detection/coverage: Email security products can see the delivery attempt, but they will not reliably label it as CVE-2026-42897 unless content matches known patterns.
STEP 02

Lure the victim into OWA

The victim must open the message in Outlook on the web, and Microsoft notes that certain interaction conditions must be met before the script executes. This is the biggest downward-pressure item in the chain: the bug is remote and unauthenticated for delivery, but still gated by human behavior. Weaponized tool: *social engineering / user interaction in OWA*.
Conditions required:
  • Victim uses OWA rather than only thick-client Outlook
  • Victim opens the crafted message in browser
  • Required interaction conditions are satisfied
Where this breaks in practice:
  • UI:R is real here; this is not a blind server-side exploit
  • Security awareness, preview-pane behavior differences, and alternate mail clients all reduce reach
Detection/coverage: Server-side scanners usually miss this stage; browser telemetry, phishing reports, and OWA access logs are more useful.
STEP 03

Execute JavaScript inside the authenticated OWA session

If the lure works, attacker-controlled JavaScript runs in the browser context of the victim's authenticated OWA session. That enables mailbox reads, message composition, or other actions available to that user through OWA, depending on the exact client-side primitive. Weaponized tool: *browser JavaScript using the victim's existing OWA session*.
Conditions required:
  • OWA session is active or can be established by the victim
  • No effective mitigation such as Microsoft's M2.1.x CSP-based control is present
  • Browser supports the rendered attack path
Where this breaks in practice:
  • Microsoft's Exchange Emergency Mitigation Service can auto-apply mitigation M2.1.x
  • The mitigation adds CSP-style restrictions that break this class of browser-side payload
Detection/coverage: Expect weak CVE-specific scanner coverage. Useful evidence is abnormal OWA actions, suspicious sends, mailbox rule creation, and browser/IdP telemetry tied to OWA sessions.
STEP 04

Monetize the session, not the server

The attacker typically cashes out by stealing message content, sending internal phishing from a trusted mailbox, or abusing the victim's access for follow-on fraud or espionage. This is high-value access, but it is still user-context abuse, not Exchange server takeover. Weaponized tool: *OWA session abuse for data access and trust hijacking*.
Conditions required:
  • Victim account has useful mailbox data or privileged workflows
  • Attacker can act before the session expires or is revoked
Where this breaks in practice:
  • Blast radius depends heavily on who opened the message
  • MFA does not stop a live stolen browser session, but conditional access, session revocation, and anomaly detection can shorten dwell time
Detection/coverage: Look for anomalous sent items, inbox rule changes, impossible-travel/browser anomalies, and mailbox access by unusual user agents or IPs.
03 · Intelligence Metadata

The supporting signals.

In-the-wild statusConfirmed active exploitation. Microsoft disclosed it as actively exploited, and NVD links the CVE to CISA KEV.
KEV statusYES. CISA KEV entry added 2026-05-15 with a federal due date of 2026-05-29.
EPSS0.08822 (8.822%) from the user-provided intel; that is not sky-high statistically, but KEV beats EPSS for prioritization. I could not confirm the exact percentile from a primary source in the retrieved material.
CVSS reality checkMicrosoft scored it 8.1 / HIGH with AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:N. NVD currently shows a lower 6.1 / MEDIUM enrichment with S:C/C:L/I:L, which is a useful reminder that the likely impact is session abuse and spoofing, not server destruction.
Affected versionsExchange Server 2016, Exchange Server 2019, and Exchange Server Subscription Edition at any update level per Microsoft Exchange Team guidance. Exchange Online is not impacted.
Fixed versionsNo permanent security update was available in the retrieved Microsoft guidance. Microsoft said a future update would target Exchange SE RTM, Exchange 2016 CU23, and Exchange 2019 CU14/CU15; older CUs need upgrading first.
Mitigation statusMicrosoft's recommended stopgap is Exchange Emergency Mitigation Service with mitigation ID M2.1.x, or the EOMT script for disconnected environments. Important gap: Microsoft says the mitigation does not work with Internet Explorer or Edge in IE mode because IE lacks CSP support.
PoC availabilityI did not find an authoritative public Microsoft or GitHub PoC in the retrieved primary sources. That said, XSS payload construction is trivial once the vulnerable rendering path is understood, so the absence of a polished repo is not meaningful protection.
Exposure / scanning dataInference from first-party exposure research: Censys counted 98,685 exposed on-prem Exchange servers during a related 2025 Exchange advisory. That is not a count for this exact CVE, but it is the closest credible outside-in signal for how much Exchange attack surface still exists on the public Internet.
Disclosure / reporterDisclosed 2026-05-14. Secondary reporting citing Microsoft says it was reported by an anonymous researcher.
04 · The Call

noisgate verdict.

Final Verdict
= UNCHANGED to HIGH (8.0/10)

The deciding factor is confirmed active exploitation against a high-value, internet-facing enterprise mail surface. What keeps this out of CRITICAL is that exploitation still depends on a victim opening the message in OWA and the outcome is session compromise in browser context, not unauthenticated Exchange server takeover.

HIGH Affected product scope and mitigation availability
HIGH KEV / active-exploitation status
MEDIUM Exact post-exploitation ceiling per victim role and browser behavior

Why this verdict

  • KEV overrides the usual debate: confirmed exploitation in the wild means this is not theoretical, and it targets a business-critical platform with mailbox trust built in.
  • User interaction trims the score: the attacker needs a victim to open the crafted email in OWA and satisfy interaction conditions, which sharply narrows reachable population versus pre-auth server bugs.
  • On-prem-only narrows population: Exchange Online is not affected, so only organizations still running on-prem Exchange with OWA in use are exposed.
  • Blast radius is user-context, not SYSTEM: the attacker gets what the victim's OWA session can do, which is dangerous for executives/admins but still not equivalent to host-level Exchange RCE.
  • Mitigation exists today: Microsoft can auto-apply M2.1.x via EM Service, reducing dwell time for organizations that left the feature enabled.

Why not higher?

This is not the classic Exchange nightmare scenario where an unauthenticated attacker lands code execution on the server and pivots from there. The chain needs human interaction in OWA, and the practical payload executes in the victim's browser/session rather than as SYSTEM on the Exchange host.

Why not lower?

KEV listing prevents any comfortable downgrade into backlog territory. Even without host takeover, hijacking a live OWA session on a mail server is enough for data theft, internal phishing, fraud enablement, and abuse of high-trust communications.

05 · Compensating Control

What to do — in priority order.

  1. Verify M2.1.x everywhere — Confirm Microsoft's Exchange Emergency Mitigation Service applied mitigation M2.1.x on every Exchange mailbox server, or run EOMT in disconnected environments. Because this CVE is KEV-listed, deploy and verify this immediately, within hours rather than waiting for the normal HIGH timeline.
  2. Kill IE and IE mode for OWA — Block Internet Explorer and Edge IE mode access to OWA because Microsoft states the mitigation does not protect those clients due to missing CSP support. Enforce this immediately, within hours anywhere legacy browser paths still exist.
  3. Constrain OWA exposure — Reduce external reachability to OWA with VPN, reverse-proxy policy, IP allowlisting, or temporary geo/business-unit restrictions where operationally possible. For a KEV-listed bug on a public mail surface, put this control in place immediately, within hours for internet-facing instances.
  4. Hunt for mailbox abuse — Prioritize detections for anomalous OWA sends, suspicious mailbox rule creation, impossible-travel sessions, and abnormal browser/user-agent patterns. Start the hunt immediately, within hours because successful exploitation looks like trusted user activity more than malware on disk.
  5. Tier admin mail access away from OWA — Restrict or temporarily reroute privileged/admin mailbox use away from OWA where feasible, because the value of this CVE scales with who opens the message. Apply this immediately, within hours for high-value identities.
What doesn't work
  • MFA alone doesn't stop abuse of an already-authenticated browser session.
  • EDR on the Exchange host is not the main control because the exploit path lives in the victim's browser session and may leave little host-side malware evidence.
  • Relying on users to avoid phishing is insufficient; the attack is specifically designed to piggyback on ordinary email-reading behavior in OWA.
  • Patching old unsupported CUs later is not a control today; Microsoft indicated the future security update targets specific supported baselines, so older CU drift remains exposed until you first get onto a supported train.
06 · Verification

Crowdsourced verification payload.

Run this on each on-prem Exchange server from an elevated Exchange Management Shell or an elevated PowerShell session on the target host. Example: powershell -ExecutionPolicy Bypass -File .\Test-CVE-2026-42897.ps1; local admin is recommended, and for this CVE the script treats **PATCHED as either Microsoft's mitigation M2.1* being applied or the matching CSP rule being present**, since no permanent fixed build was confirmed in the retrieved vendor guidance.

noisgate-verify.ps1
POWERSHELLREAD-ONLYSAFE
# Test-CVE-2026-42897.ps1

# Checks whether an on-prem Exchange server appears protected from CVE-2026-42897.

# Output: VULNERABLE / PATCHED / UNKNOWN

# Exit codes: 0=PATCHED, 1=VULNERABLE, 2=UNKNOWN


$ErrorActionPreference = 'Stop'

function Write-Result {
    param(
        [string]$Status,
        [int]$Code,
        [string]$Detail
    )
    Write-Output "$Status - $Detail"
    exit $Code
}

try {
    # Load Exchange snap-in if needed

    if (-not (Get-Command Get-ExchangeServer -ErrorAction SilentlyContinue)) {
        try {
            Add-PSSnapin Microsoft.Exchange.Management.PowerShell.SnapIn -ErrorAction Stop
        } catch {
            # Continue; command might still be available in EMS only

        }
    }

    if (-not (Get-Command Get-ExchangeServer -ErrorAction SilentlyContinue)) {
        Write-Result -Status 'UNKNOWN' -Code 2 -Detail 'Get-ExchangeServer is unavailable. Run from Exchange Management Shell on the target server.'
    }

    $server = Get-ExchangeServer -Identity $env:COMPUTERNAME -ErrorAction Stop
    if (-not $server) {
        Write-Result -Status 'UNKNOWN' -Code 2 -Detail 'Local server is not returned by Get-ExchangeServer.'
    }

    # Confirm this is an Exchange version family in scope

    $editionText = ($server.AdminDisplayVersion | Out-String).Trim()
    $major = $server.AdminDisplayVersion.Major
    $minor = $server.AdminDisplayVersion.Minor

    # Exchange 2016/2019/SE all live under v15; scope determination is imperfect from PowerShell alone.

    if ($major -ne 15) {
        Write-Result -Status 'UNKNOWN' -Code 2 -Detail "Server does not look like Exchange v15-family. Found: $editionText"
    }

    $applied = @()
    $blocked = @()
    if ($server.MitigationsApplied) { $applied = @($server.MitigationsApplied) }
    if ($server.MitigationsBlocked) { $blocked = @($server.MitigationsBlocked) }

    $m21Applied = $false
    $m21Blocked = $false

    foreach ($m in $applied) {
        if ($m -match '^M2\.1') { $m21Applied = $true }
    }
    foreach ($m in $blocked) {
        if ($m -match '^M2\.1') { $m21Blocked = $true }
    }

    # Secondary check: look for the CSP mitigation artifact in common OWA/IIS config locations.

    $pathsToCheck = @(
        'C:\Program Files\Microsoft\Exchange Server\V15\FrontEnd\HttpProxy\owa\web.config',
        'C:\Program Files\Microsoft\Exchange Server\V15\ClientAccess\owa\web.config',
        "$env:windir\System32\inetsrv\config\applicationHost.config"
    )

    $cspFound = $false
    foreach ($p in $pathsToCheck) {
        if (Test-Path $p) {
            try {
                $content = Get-Content -Path $p -Raw -ErrorAction Stop
                if ($content -match 'Content-Security-Policy' -and $content -match "script-src-attr\s+''none''|script-src-attr\s+'none'") {
                    $cspFound = $true
                }
            } catch {
                # ignore per-file read errors and continue

            }
        }
    }

    # Service state is helpful context but not decisive

    $svc = Get-Service -Name MSExchangeMitigation -ErrorAction SilentlyContinue
    $svcState = if ($svc) { $svc.Status.ToString() } else { 'Missing' }

    if ($m21Blocked) {
        Write-Result -Status 'VULNERABLE' -Code 1 -Detail "Mitigation M2.1* is explicitly blocked on this server. EM service state: $svcState. Build: $editionText"
    }

    if ($m21Applied -or $cspFound) {
        $reason = @()
        if ($m21Applied) { $reason += 'M2.1* present in MitigationsApplied' }
        if ($cspFound) { $reason += 'CSP mitigation artifact found in config' }
        Write-Result -Status 'PATCHED' -Code 0 -Detail (("Protected for CVE-2026-42897: {0}. EM service state: {1}. Build: {2}" -f ($reason -join '; '), $svcState, $editionText))
    }

    Write-Result -Status 'VULNERABLE' -Code 1 -Detail "No evidence of M2.1* or matching CSP mitigation found. EM service state: $svcState. Build: $editionText"
}
catch {
    Write-Result -Status 'UNKNOWN' -Code 2 -Detail $_.Exception.Message
}
07 · Bottom Line

If you remember one thing.

TL;DR
Monday morning, treat this as an internet-facing mail-system incident, not a routine XSS ticket: verify M2.1.x or EOMT coverage on every Exchange server, block IE/IE mode access to OWA, and hunt for suspicious OWA-driven mailbox activity immediately, within hours because KEV evidence overrides the normal noisgate mitigation SLA for a HIGH. There is no permanent patch confirmed in the retrieved vendor guidance, so stay on the mitigation, get older Exchange boxes onto the supported CU baseline Microsoft named, and when the vendor security update ships, deploy it on release rather than consuming the full noisgate remediation SLA of ≤180 days for HIGH.

Sources

  1. Microsoft Security Update Guide - CVE-2026-42897
  2. Microsoft Exchange Team - Addressing Exchange Server May 2026 vulnerability CVE-2026-42897
  3. NVD - CVE-2026-42897
  4. CISA Known Exploited Vulnerabilities Catalog
  5. Microsoft Learn - Exchange Emergency Mitigation Service
  6. Microsoft Learn - Exchange Server build numbers and release dates
  7. FIRST - EPSS
  8. Censys advisory on exposed on-prem Exchange population (related Exchange exposure baseline)
Peer Review

What defenders are saying.

Submit a review attribution: handle + country only
0 flags selected · stored anonymously
Validation Results

Crowdsourced verification outputs.

Results submitted by users who ran the verification payload against their environment.