CVE-2026-42897 — Microsoft Exchange Server OWA Zero-Day
Executive Summary
CVE-2026-42897 is an actively exploited zero-day in Microsoft Exchange Server Outlook Web Access (OWA). It is an improper-neutralization (cross-site scripting / spoofing) flaw: an attacker sends a weaponized email, and when a victim opens it in a browser via OWA under certain interaction conditions, attacker-controlled JavaScript executes inside the victim's OWA session. Microsoft rates it CVSS 8.1, Critical and has confirmed active exploitation in the wild. CISA added it to the Known Exploited Vulnerabilities catalog.
The attacker's objective is browser-session / token theft and mailbox access (T1185, T1114): script running in the OWA context can read mail, steal session material, and pivot to OWA mailbox access from anomalous infrastructure. Where a victim has elevated rights or the attacker chains to a follow-on web shell under the Exchange web directories (T1505.003), the on-prem Exchange server itself becomes the foothold — and Exchange servers historically run with high privilege.
Highest-value defensive angle: because no atomic IOCs are published, hunt the behavior on the Exchange box — specifically w3wp.exe (MSExchange app pools) spawning shells/interpreters and new .aspx writes under OWA / HttpProxy / aspnet_client. Those are the loudest signals of the post-XSS pivot regardless of the email payload itself. Pair that EDR hunt with native IIS/HttpProxy OWA-log and message-tracking review for the weaponized-email vector.
Scope: on-prem only — Exchange Server Subscription Edition (SE), Exchange Server 2019, Exchange Server 2016. Exchange Online is not affected. Microsoft shipped Security Updates on 2026-06-09; an interim mitigation (Exchange Emergency Mitigation Service, EEMS) was pushed earlier, and reporting notes mitigation gaps in some configurations.
Defender priority: Apply the June 2026 SU to all on-prem Exchange (SE / 2019 / 2016) immediately, confirm EEMS mitigations are active, then hunt for w3wp.exe child-process execution and unexpected .aspx writes under Exchange web dirs over the last 30–60 days — exploitation predates the patch.
Source Review & Web Hunter Notes
| Source | Tier | Pulled | Decision |
|---|---|---|---|
| NVD — CVE-2026-42897 | Authoritative | CVSS 8.1, CWE improper neutralization / XSS, network vector | Anchor for scoring & vuln class |
| Microsoft MSRC advisory + June 2026 Security Updates | Vendor | Affected builds (SE/2019/2016), spoofing-over-network impact, SU release 2026-06-09, EEMS mitigation | Patch & affected-surface ground truth |
| SecurityAffairs (cited) | Reporting | Active exploitation confirmed, weaponized-email → JS-in-OWA mechanism, interim mitigation, mitigation gaps | Exploitation narrative |
| BleepingComputer (cited) | Reporting | "Specially crafted email opened in OWA → arbitrary JavaScript in browser context", affected versions, CISA KEV add, EEMS | Mechanism & KEV corroboration |
| SecurityWeek / DarkReading | Reporting | Patch-urgency framing, on-prem-only scope, no published atomic IOCs | Scope confirmation |
IOC provenance note: As of 2026-06-20 no atomic IOCs (IPs, hashes, filenames, domains) have been publicly published for CVE-2026-42897. This pack ships behavioral signatures only plus REPLACE_WITH_… placeholders. Do not treat any concrete value here as a real-world IOC.
Hunt Brief & Attack Chain
Hunt hypotheses
- H1 — Web-shell pivot: Post-XSS, an operator drops a .aspx web shell under an Exchange web virtual directory (
…\FrontEnd\HttpProxy\owa\auth\,…\inetpub\wwwroot\aspnet_client\). Detect anomalous .aspx file writes by IIS/Exchange service accounts. - H2 — App-pool child process:
w3wp.exerunning an MSExchange app pool spawnscmd.exe,powershell.exe,cscript.exeor other interpreters — the classic Exchange-exploitation tell. - H3 — Session/token theft & anomalous mailbox access: OWA session reached from rare/foreign IPs shortly after a crafted email, or token reuse from new geos/ASNs — browser session hijacking (T1185).
- H4 — Outbound C2 from Exchange host: Exchange host processes (w3wp.exe or spawned children) make outbound connections to rare external destinations (T1071).
- H5 — Weaponized-email vector: Inbound mail with HTML/script payloads correlated to OWA render events in message-tracking + HttpProxy logs.
Attack chain
| # | Stage | Behavior | ATT&CK |
|---|---|---|---|
| 1 | Delivery | Weaponized email with embedded script delivered to a mailbox served by on-prem OWA | T1566 |
| 2 | Initial Access / Exploit | Victim opens message in OWA; improper neutralization lets attacker JS execute in OWA session | T1190 |
| 3 | Execution | Attacker JavaScript runs in browser context (OWA) | T1059.007 |
| 4 | Credential / Session Access | Session token / OWA session material stolen; browser session hijacked | T1185 |
| 5 | Collection | Mailbox read / mail exfiltrated via OWA from anomalous IPs | T1114 |
| 6 | Persistence (follow-on) | Optional .aspx web shell dropped under Exchange web dirs | T1505.003 |
| 7 | Command & Control | App-layer C2 from Exchange host / spawned children to rare destinations | T1071 |
Consolidated IOC Table
No atomic IOCs published as of 2026-06-20. The rows below are behavioral indicators and placeholders — hunt on behavior, not on the concrete values.
| Type | Value | Confidence | Action | Context |
|---|---|---|---|---|
| behavior | w3wp.exe (MSExchange app pool) spawns cmd/powershell/cscript/wscript | high | hunt | Post-exploit child process on Exchange host (T1190/T1505.003) |
| behavior | New .aspx write under owa\auth, HttpProxy, or aspnet_client by IIS/Exchange acct | high | hunt | Web-shell drop (T1505.003) |
| behavior | OWA session / mailbox access from rare IP / new ASN post-email | medium | hunt | Session hijack / mailbox collection (T1185/T1114) |
| behavior | Outbound connection from Exchange host process to rare external dest | medium | hunt | C2 (T1071) |
| ip4 | REPLACE_WITH_C2_IP | medium | pivot | Populate from your own triage; none published |
| sha256 | REPLACE_WITH_WEBSHELL_SHA256 | medium | pivot | Hash of any .aspx web shell you recover |
| filename | REPLACE_WITH_WEBSHELL_NAME.aspx | medium | pivot | Anomalous .aspx under Exchange web dirs |
Affected Surface & Telemetry Matrix
Affected (on-prem only): Exchange Server Subscription Edition (SE), Exchange Server 2019 (CU14 / CU15), Exchange Server 2016 (CU23). Exchange Online is NOT affected.
| Surface | Telemetry | Priority | Gap |
|---|---|---|---|
| Exchange host process tree | Falcon ProcessRollup2 (ImageFileName / ParentBaseFileName / CommandLine) | Critical | None if sensor deployed on Exchange |
| Exchange web directories | Falcon file-write events (TargetFileName) under owa/HttpProxy/aspnet_client | Critical | Needs file telemetry on the host |
| OWA / HttpProxy access | IIS logs, HttpProxy logs (W3SVC / Exchange logging) | High | Often not centralized — forward to SIEM |
| Mail flow / delivery | Exchange message-tracking logs, mail-gateway logs | High | Script-in-HTML detection is weak |
| Outbound network from host | Falcon NetworkConnectIP4 / DNS request events | High | Egress-rarity baseline needed |
| Identity / OWA logon | UserLogon, Entra/AD sign-in (for hybrid), token reuse | Medium | OWA session theft may not surface as new logon |
ATT&CK Mapping
| Tactic | Technique | Behavior | Query / Control |
|---|---|---|---|
| Initial Access | T1190 — Exploit Public-Facing Application | XSS in OWA via crafted email | Q5 / native HttpProxy hunt · patch |
| Initial Access | T1566 — Phishing | Weaponized email delivery | Native message-tracking hunt |
| Execution | T1059.007 — JavaScript | Attacker JS in OWA session | Native OWA-log hunt |
| Credential Access | T1185 — Browser Session Hijacking | Session/token theft from OWA | Q3 · CA / token review |
| Collection | T1114 — Email Collection | Mailbox read/exfil via OWA | Q3 / native mailbox-audit hunt |
| Persistence | T1505.003 — Web Shell | .aspx dropped under Exchange web dirs | Q2 · IOA |
| Execution | T1059 — Command & Scripting Interpreter | w3wp.exe spawns shells | Q1, Q4 · IOA |
| Command & Control | T1071 — Application Layer Protocol | Outbound C2 from Exchange host | Q6 |
Native Audit-Log Hunts
Checks that don't require EDR — run these against IIS, HttpProxy, message-tracking, and Exchange management logs on each on-prem Exchange server.
IIS / HttpProxy OWA logs
- Parse
%ExchangeInstallPath%\Logging\HttpProxy\Owa\*.logand W3SVC IIS logs for OWA requests with unusually long query strings, script-bearing parameters, or requests to non-standard .aspx paths under the OWA virtual directory. - Flag requests to any .aspx under
owa\auth\oraspnet_client\that is not part of the shipped Exchange file set. - Correlate OWA
AnchorMailbox/AuthenticatedUservalues reached from source IPs outside your normal client ranges.
Message tracking — weaponized email
- Run
Get-MessageTrackingLogfor inbound mail with HTML bodies to user mailboxes; pivot on senders that precede anomalous OWA activity by minutes. - Have the mail gateway re-scan recent inbound HTML mail for embedded
<script>/ event-handler attributes targeting OWA rendering.
Exchange / file system
- Compare current file set under Exchange web virtual directories against a known-good baseline (file integrity) to surface any added/modified .aspx, .asax, or .ashx.
- Review IIS app-pool worker recycling and unexpected child processes via Sysmon Event ID 1 where ParentImage is
w3wp.exe. - Confirm EEMS mitigation state and that the June 2026 SU is installed (build number check) on every server.
CrowdStrike LogScale CQL Hunt Queries
Looks for: Exchange IIS worker process (w3wp.exe) spawning command shells or scripting interpreters — the highest-fidelity tell of post-exploit code execution on an Exchange host. FP: Exchange health probes and some management cmdlets legitimately spawn PowerShell; scope to MSExchange app-pool context and exclude known maintenance jobs.
// HUNT: w3wp.exe (Exchange app pool) spawning shells/interpreters — post-XSS code exec on Exchange host // MITRE: T1190, T1505.003, T1059 | CONF: high FP: low COST: low // REQUIRES: ProcessRollup2 on on-prem Exchange servers // FALSE POSITIVES: Exchange health mailbox probes, admin PowerShell, monitoring agents // TUNING: restrict ComputerName to Exchange hosts; allowlist known maintenance parents/commandlines #event_simpleName=/^(Process|SyntheticProcess)Rollup2$/ | ParentBaseFileName=/^w3wp\.exe$/i | ImageFileName=/\\(cmd|powershell|pwsh|cscript|wscript|mshta|net1?|whoami|certutil|bitsadmin)\.exe$/i | ProcessStartTime := formatTime("%Y-%m-%d %H:%M:%S", field=ProcessStartTime) | table([ProcessStartTime, ComputerName, UserName, ParentBaseFileName, ImageFileName, CommandLine, aid], limit=200)
Looks for: Creation of .aspx / .ashx / .asax files under OWA, HttpProxy, or aspnet_client paths — the web-shell drop. FP: Exchange CU/SU installs and OWA customization legitimately write under these dirs; exclude writes whose parent is the Exchange setup/servicing process and correlate to known patch windows.
// HUNT: web-shell (.aspx/.ashx/.asax) written under Exchange web virtual directories // MITRE: T1505.003 | CONF: high FP: medium COST: low // REQUIRES: file-write telemetry on Exchange hosts // FALSE POSITIVES: CU/SU servicing, OWA theming/customization, legit admin deployments // TUNING: exclude TargetFileName written during sanctioned patch windows; allowlist setup parents #event_simpleName=/^(PeFileWritten|NewExecutableWritten|.*FileWritten)$/ | TargetFileName=/\\(FrontEnd\\HttpProxy|owa\\auth|aspnet_client|ClientAccess)\\.*\.(aspx|ashx|asax|asmx)$/i | TargetFileName!=/\\(setup|cu\d+|sumitigation)\\/i | FileWriteTime := formatTime("%Y-%m-%d %H:%M:%S", field=ContextTimeStamp) | table([FileWriteTime, ComputerName, UserName, TargetFileName, ContextBaseFileName, aid], limit=200)
Looks for: OWA / Exchange logon activity concentrated from rarely-seen source IPs, surfacing session-hijack and anomalous mailbox access. FP: Travelling users, VPN egress changes, and new mobile carriers create benign rare IPs; correlate with the email timeline and require a low session count per IP.
// HUNT: OWA logon / mailbox access from rare source IPs (session hijack, mail collection) // MITRE: T1185, T1114 | CONF: medium FP: medium COST: medium // REQUIRES: UserLogon events (or forwarded IIS/HttpProxy logs) for OWA // FALSE POSITIVES: traveling users, VPN/egress changes, new carriers // TUNING: raise the rare-IP threshold; join to message-tracking timeline before alerting #event_simpleName=UserLogon | RemoteAddressIP4=* | groupBy([RemoteAddressIP4, UserName], function=count(as=hits)) | hits<=3 | sort(field=hits, order=asc, limit=200) | table([RemoteAddressIP4, UserName, hits], limit=200)
Looks for: Broader net than Q1 — any non-allowlisted child spawned by Exchange worker/transport processes (w3wp.exe, MSExchange*, UMWorkerProcess.exe). FP: Exchange itself spawns helper binaries; baseline the legitimate children per server and exclude them before alerting.
// HUNT: unexpected children of Exchange worker/transport processes // MITRE: T1190, T1059 | CONF: high FP: medium COST: low // REQUIRES: ProcessRollup2 on Exchange hosts // FALSE POSITIVES: legit Exchange helper binaries (e.g. inspector, wermgr) — baseline per host // TUNING: build an allowlist of known-good ImageFileName children and exclude them #event_simpleName=/^(Process|SyntheticProcess)Rollup2$/ | ParentBaseFileName=/^(w3wp|MSExchange.*|UMWorkerProcess|EdgeTransport|noderunner)\.exe$/i | ImageFileName!=/\\(w3wp|conhost|wermgr|werfault|MSExchange.*|Microsoft\.Exchange.*)\.exe$/i | groupBy([ComputerName, ParentBaseFileName, ImageFileName], function=[count(as=hits), collect([CommandLine])]) | sort(field=hits, order=asc) | table([ComputerName, ParentBaseFileName, ImageFileName, hits, CommandLine], limit=200)
Looks for: Forwarded IIS/HttpProxy OWA log lines containing script tokens or anomalously long query strings against OWA endpoints — the weaponized-email render and any injected payload. FP: Long benign tokens appear in normal OWA traffic; require script-token regex hits and pivot on the requesting client/mailbox.
// HUNT: OWA requests carrying script tokens / oversized query strings (XSS render + injection) // MITRE: T1190, T1059.007 | CONF: medium FP: medium COST: medium // REQUIRES: IIS / HttpProxy OWA logs forwarded into LogScale // FALSE POSITIVES: legitimate long OWA URIs, encoded mail content // TUNING: narrow cs_uri_query regex to your environment; exclude known OWA app paths #repo=iis_owa | cs_uri_stem=/\/owa\//i | cs_uri_query=/(%3C|<)script|onerror=|onload=|javascript:|document\.cookie/i | table([@timestamp, c_ip, cs_username, cs_method, cs_uri_stem, cs_uri_query, sc_status], limit=200)
Looks for: External connections initiated by Exchange host processes to rarely-seen remote IPs — C2 from the compromised server. FP: Exchange reaches Microsoft endpoints, OCSP/CRL, and AV update infra; exclude known-good ASNs and require an external, low-frequency destination.
// HUNT: outbound connections from Exchange host processes to rare external destinations // MITRE: T1071 | CONF: medium FP: medium COST: medium // REQUIRES: NetworkConnectIP4 on Exchange hosts // FALSE POSITIVES: MS service endpoints, OCSP/CRL, AV/update traffic // TUNING: exclude RFC1918 + known-good CIDRs; raise rarity threshold #event_simpleName=NetworkConnectIP4 | ContextBaseFileName=/^(w3wp|powershell|pwsh|cmd|cscript)\.exe$/i | RemoteAddressIP4!=/^(10\.|192\.168\.|172\.(1[6-9]|2\d|3[01])\.)/ | groupBy([RemoteAddressIP4, ContextBaseFileName, ComputerName], function=count(as=conns)) | conns<=5 | sort(field=conns, order=asc, limit=200) | table([RemoteAddressIP4, ContextBaseFileName, ComputerName, conns], limit=200)
Custom IOA Recommendations
| IOA name | Pattern | Exclusions | Deployment |
|---|---|---|---|
| Exchange-WorkerProcess-Spawns-Shell | Parent w3wp.exe → child cmd/powershell/pwsh/cscript/wscript/mshta/certutil | Exchange health probes; sanctioned admin PowerShell hosts | Process-create IOA, scoped to Exchange host group, action Detect→Prevent after baseline |
| Exchange-Webdir-Aspx-Write | File create matching *\(HttpProxy|owa\auth|aspnet_client)\*.aspx | CU/SU servicing parent; patch-window writes | File-write IOA on Exchange host group |
| Exchange-Host-Suspicious-Egress | Exchange process → external IP not in allowlist on uncommon port | MS/OCSP/AV CIDRs | Network IOA, Detect, on Exchange host group |
Deploy IOAs to a dedicated Exchange host group so prevention scope stays tight. Run in Detect for one baselining cycle, fold benign parents/children into the exclusion list, then escalate to Prevent.
Machine-Readable IOC Appendix
No atomic IOCs published as of 2026-06-20 — the CSV uses REPLACE_WITH_… placeholders. Ship the behavioral signatures and the patch/EEMS audit block; fill atomic values only from your own confirmed triage.
type,value,action,severity,expiration,description,tags ipv4,REPLACE_WITH_C2_IP,detect,high,2026-12-20,CVE-2026-42897 Exchange OWA C2,campaign:Exchange-OWA-CVE-2026-42897 sha256,REPLACE_WITH_WEBSHELL_SHA256,detect,critical,2026-12-20,CVE-2026-42897 web shell,campaign:Exchange-OWA-CVE-2026-42897 domain,REPLACE_WITH_C2_DOMAIN,detect,high,2026-09-20,CVE-2026-42897 OWA C2,campaign:Exchange-OWA-CVE-2026-42897
w3wp.exe (MSExchange app pool) -> cmd|powershell|pwsh|cscript|wscript|mshta|certutil new .aspx|.ashx|.asax under \FrontEnd\HttpProxy\ | \owa\auth\ | \aspnet_client\ OWA mailbox access from rare/new source IP shortly after inbound HTML email outbound from Exchange host process to rare external IP (non-RFC1918, low freq) inbound email with embedded <script>/event-handler rendered in OWA
%ExchangeInstallPath%\FrontEnd\HttpProxy\owa\auth\ %ExchangeInstallPath%\FrontEnd\HttpProxy\ClientAccess\ C:\inetpub\wwwroot\aspnet_client\ %ExchangeInstallPath%\Logging\HttpProxy\Owa\ (review for anomalous endpoints) No named malware family or atomic IOC published as of 2026-06-20
# Confirm June 2026 SU installed (run on each Exchange server)
Get-Command ExSetup.exe | ForEach { $_.FileVersionInfo.ProductVersion }
# Confirm Exchange Emergency Mitigation Service (EEMS) running + mitigations applied
Get-Service MSExchangeMitigation | Select Status
Get-ExchangeServer | Get-ServerComponentState
Get-Mailbox -ResultSize 5 # sanity: management shell reachable
# Affected on-prem: Exchange SE, 2019 (CU14/CU15), 2016 (CU23). Exchange Online NOT affected.
Detection Validation Gates
| Gate | Check | Pass criteria |
|---|---|---|
| Telemetry ready | ProcessRollup2, file-write, NetworkConnectIP4 present from Exchange hosts; IIS/HttpProxy logs forwarded | All Exchange servers reporting in last 24h |
| Benign baseline | Run Q1/Q4 over 30d; catalog legit w3wp children & servicing writes | Allowlist built; Q1 noise < a handful/day/host |
| Positive test | In a lab Exchange host, spawn cmd.exe from a w3wp context and drop a benign .aspx under owa\auth | Q1 and Q2 both fire |
| Promotion | FP rate acceptable after baseline; IOAs validated in Detect | Promote IOAs Detect→Prevent on Exchange host group |
Hardening — Tiered
- Install the June 2026 Security Update on every on-prem Exchange (SE, 2019 CU14/CU15, 2016 CU23). Exploitation predates the patch — patch is non-negotiable.
- Confirm Exchange Emergency Mitigation Service (EEMS) is running and the interim mitigation is applied; do not disable it until SU is in place.
- Hunt the last 30–60 days with Q1/Q2 for the post-exploit pivot; investigate any hit as a live incident.
- Force a re-scan of recent inbound HTML mail at the gateway; consider stripping active script content from inbound mail rendered in OWA.
- Deploy the three custom IOAs (§9) to a dedicated Exchange host group; baseline then move to Prevent.
- Forward IIS + HttpProxy OWA logs and Exchange message-tracking into the SIEM so Q3/Q5 have data.
- Restrict OWA external exposure where feasible (pre-auth / reverse proxy / Conditional Access for hybrid) and enforce MFA on OWA.
- Baseline egress from Exchange hosts and apply an allowlist so Q6 has a tight rarity signal.
- Plan migration of remaining on-prem mailboxes to Exchange Online (not affected) or to Exchange Server SE with a disciplined SU cadence.
- Implement file-integrity monitoring on all Exchange web virtual directories with alerting on any new server-side script file.
- Least-privilege the Exchange service accounts and segment the Exchange tier so a web-shell foothold can't pivot freely.
- Adopt a standing process to apply Exchange SUs within days of release and verify EEMS health continuously.
Deployable Playbooks
1 · Verify patch + EEMS state across all Exchange servers
# Run from Exchange Management Shell on each server
$ver = (Get-Command ExSetup.exe).FileVersionInfo.ProductVersion
Write-Host "Exchange build: $ver"
Get-Service MSExchangeMitigation | Format-Table Name,Status
Get-ServerComponentState (hostname) | Where {$_.State -ne 'Active'}
# Cross-check build against the June 2026 SU build number for your CU.
2 · Baseline + hunt anomalous .aspx under Exchange web dirs (PowerShell)
$roots = @(
(Join-Path $env:ExchangeInstallPath 'FrontEnd\HttpProxy'),
'C:\inetpub\wwwroot\aspnet_client'
)
Get-ChildItem $roots -Recurse -Include *.aspx,*.ashx,*.asax,*.asmx -ErrorAction SilentlyContinue |
Where-Object { $_.LastWriteTime -gt (Get-Date).AddDays(-60) } |
Select-Object FullName, LastWriteTime, Length |
Sort-Object LastWriteTime -Descending |
Format-Table -AutoSize
# Compare every result against a known-good Exchange file baseline. Investigate unknowns.
3 · Surface w3wp.exe child processes (Sysmon, last 7d)
# Requires Sysmon Event ID 1 (process create)
Get-WinEvent -FilterHashtable @{LogName='Microsoft-Windows-Sysmon/Operational'; Id=1; StartTime=(Get-Date).AddDays(-7)} |
Where-Object { $_.Message -match 'ParentImage:.*\\w3wp\.exe' -and
$_.Message -match 'Image:.*\\(cmd|powershell|pwsh|cscript|wscript|mshta|certutil)\.exe' } |
ForEach-Object { $_.TimeCreated; $_.Message }
Containment Runbook
| Phase | Actions | Owner | Evidence |
|---|---|---|---|
| Identify | Confirm hit from Q1/Q2; determine which Exchange host, which app pool, which mailbox(es) involved | SOC / IR | ProcessRollup2 + file-write rows, host name, timeline |
| Contain | Network-contain affected Exchange host in Falcon; preserve before reboot; block any confirmed C2; suspend abused OWA sessions/accounts | IR | Containment ticket, isolated host ID |
| Eradicate | Remove web shell(s); confirm SU installed + EEMS active; rotate credentials/tokens for affected mailboxes and any service accounts on the host | IR / Exchange admin | File removal log, build version, reset records |
| Recover | Restore from known-good if web-dir integrity is in doubt; re-baseline; return host to service | Exchange admin | Integrity check, baseline diff clean |
| Lessons | Promote IOAs to Prevent; tighten OWA exposure/MFA; document SU/EEMS cadence gap that allowed exposure | Detection eng | Updated IOAs, hardening tickets |
Detection Coverage Map
| Technique | Behavior | CQL | IOA | Coverage |
|---|---|---|---|---|
| T1190 | OWA XSS exploit via email | Q5 | — | Partial |
| T1566 | Weaponized email delivery | Native (msg-tracking) | — | GAP |
| T1059.007 | JS in OWA session | Q5 / native | — | GAP |
| T1185 | Session/token theft | Q3 | — | Partial |
| T1114 | Mailbox collection via OWA | Q3 / native | — | Partial |
| T1505.003 | Web shell drop | Q2 | Webdir-Aspx-Write | Good |
| T1059 | w3wp spawns interpreter | Q1, Q4 | WorkerProcess-Spawns-Shell | Good |
| T1071 | C2 from Exchange host | Q6 | Host-Suspicious-Egress | Good |
Coverage gaps: The email-delivery (T1566) and in-browser JavaScript execution (T1059.007) steps are inherently weak on EDR — the script runs in the browser, not as a host process. Close these with mail-gateway script stripping, message-tracking correlation (§7), and forwarded OWA logs feeding Q5. The post-exploit host-side pivot (web shell, w3wp children, egress) is well covered by Q1/Q2/Q4/Q6 + IOAs. Validation: all gates in §11 must pass before promoting any IOA to Prevent.
Hunt Summary Ticket
TITLE: CVE-2026-42897 — Exchange Server OWA zero-day (XSS) hunt
SEVERITY: Critical · CVSS 8.1 · EXPLOITED IN THE WILD (zero-day)
SCOPE: On-prem Exchange only — SE, 2019 (CU14/CU15), 2016 (CU23). Exchange Online NOT affected.
HYPOTHESIS: Weaponized email -> JS in OWA session -> session/token theft + mailbox access;
optional follow-on web shell + w3wp.exe child processes on Exchange host.
QUERIES: Q1 w3wp->shell | Q2 .aspx web-shell write | Q3 rare-IP OWA access |
Q4 anomalous Exchange children | Q5 OWA script/payload (IIS) | Q6 host egress
DO FIRST: 1) Install June 2026 SU + confirm EEMS active on all Exchange hosts
2) Run Q1 + Q2 over last 60d; treat any hit as a live incident
3) Re-scan recent inbound HTML mail at the gateway
FINDINGS: <populate from triage>
GAPS: T1566 delivery + T1059.007 in-browser JS weak on EDR; no atomic IOCs published
ACTIONS: Patch + EEMS; deploy 3 IOAs (Detect->Prevent); forward OWA/HttpProxy logs; enforce OWA MFA
OWNER: HuntPack
VERSION: v0.2 · 2026-06-20
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 | Access date |
|---|---|---|---|
| Authoritative | NVD — CVE-2026-42897 | CVSS 8.1, vuln class (improper neutralization / XSS), vector | 2026-06-20 |
| Vendor | Microsoft MSRC advisory + June 2026 Security Updates | Affected builds, spoofing impact, SU release 2026-06-09, EEMS | 2026-06-20 |
| Reporting | SecurityAffairs — CVE-2026-42897 active exploitation | Active exploitation, weaponized-email mechanism, mitigation gaps | 2026-06-20 |
| Reporting | BleepingComputer — Microsoft patches Exchange zero-day | JS-in-OWA mechanism, affected versions, CISA KEV, EEMS | 2026-06-20 |
| Reporting | SecurityWeek / DarkReading — Exchange OWA zero-day coverage | On-prem-only scope, patch urgency, no published atomic IOCs | 2026-06-20 |
| Framework | MITRE ATT&CK — T1190, T1566, T1059.007, T1185, T1114, T1505.003, T1071 | Technique mapping | 2026-06-20 |