CVE-2026-42910 — Windows Hotpatch Monitoring Service Elevation of Privilege Vulnerability
Executive Summary
Out-of-bounds write in Windows Hotpatch Monitoring Service allows an authorized attacker to elevate privileges locally.
Overview
CVSS Vector
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H/E:U/RL:O/RC:C
EPSS Score
Affected Products
| Product | KB Article | Severity | Impact | Restart Required |
|---|---|---|---|---|
| Windows 11 Version 24H2 for ARM64-based Systems | 5094126 (Security Update) |
Important | Elevation of Privilege | Yes |
| Windows 11 Version 24H2 for x64-based Systems | 5094126 (Security Update) |
Important | Elevation of Privilege | Yes |
| Windows 11 Version 25H2 for ARM64-based Systems | 5094126 (Security Update) |
Important | Elevation of Privilege | Yes |
| Windows 11 Version 25H2 for x64-based Systems | 5094126 (Security Update) |
Important | Elevation of Privilege | Yes |
| Windows 11 Version 26H1 for ARM64-based Systems | 5095051 (Security Update) |
Important | Elevation of Privilege | Yes |
| Windows 11 version 26H1 for x64-based Systems | 5095051 (Security Update) |
Important | Elevation of Privilege | Yes |
| Windows Server 2025 | 5094125 (Security Update) |
Important | Elevation of Privilege | Yes |
| Windows Server 2025 (Server Core installation) | 5094125 (Security Update) |
Important | Elevation of Privilege | Yes |
Patches
| Article | Type | Restart |
|---|---|---|
5094126 |
Security Update | Yes |
5095051 |
Security Update | Yes |
5094125 |
Security Update | Yes |
Patch Diff
Out-of-bounds write (CWE-787) in the Windows Hotpatch Monitoring Service hpatchmon.dll ETW event-callback string handling, local EoP to SYSTEM. The Hotpatch Monitoring Service consumes an ETW autologger trace; autologgerProcessor::AutologgerProcessEventCallback and TraceUtil::ProcessEventCallback parse each event's user data (including WCHAR strings) into local buffers/std::wstring. PRE: the callbacks constructed strings from the event-data pointer with an unbounded std::basic_string construction that did not correctly respect the event-data length, so a crafted/oversized trace event drove an out-of-bounds write while copying the string data into the service's buffers. Because the service runs as SYSTEM and the event data is attacker-influenceable, the OOB write is a local EoP-to-SYSTEM primitive. Diff of hpatchmon.dll 10.0.26100.8521 -> .8655 (Jun 9 2026, KB5094126) confirms the fix: gated behind CFR flag Feature_1648861496, both event callbacks now build the strings via a bounded std::basic_string::_Construct<1, unsigned_short const*> (explicit-length construction) with the local string pointers pre-initialized, so the copy is bounded to the actual data length, closing the out-of-bounds write. Note: the callbacks are confirmed code-changed under Feature_1648861496 with the bounded-construction rework; the exact overflowing write is entangled in the string-handling refactor and is stated at confirmed-changed level per the CWE-787 classification.
| Function | Address | Change | Note |
|---|---|---|---|
autologgerProcessor::AutologgerProcessEventCallback |
code change |
code (bounded string construction from event data, CFR-gated) | Pre: unbounded basic_string construction from the ETW event-data pointer -> OOB write on oversized/mis-sized event strings. Post (Feature_1648861496): uses basic_string::_Construct<1, unsigned_short const*> (explicit-length) with pre-initialized local pointers. |
TraceUtil::ProcessEventCallback |
code change |
code (bounded string construction from event data, CFR-gated) | Same bounded _Construct rework for the generic trace event-callback path. |
HotpatchMonitor::Initialize / autologgerProcessor::initialize / ReportSvcStatus |
code change |
code (init/status updated) | Service init/status paths updated alongside the callback rework. |
Feature_1648861496 |
gate |
added (CFR gate) | CFR flag gating the bounded event-string construction; the original unbounded construction still ships when disabled. |
Attack Path
A crafted ETW autologger event drives an unbounded string copy in the SYSTEM Hotpatch Monitoring Service, writing out of bounds
Derived from the patch delta: the checks added by the vendor identify which fields crossed a trust boundary unvalidated. Reachability and privilege are taken from the call chain in the RCA report.