CVE-2026-33824 — Windows Internet Key Exchange (IKE) Service Extensions Remote Code Execution Vulnerability
Executive Summary
Double free in Windows IKE Extension allows an unauthorized attacker to execute code over a network.
Overview
CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:N/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 10 Version 1607 for 32-bit Systems | 5082198 (Security Update) |
Critical | Remote Code Execution | Yes |
| Windows 10 Version 1607 for x64-based Systems | 5082198 (Security Update) |
Critical | Remote Code Execution | Yes |
| Windows 10 Version 1809 for 32-bit Systems | 5082123 (Security Update) |
Critical | Remote Code Execution | Yes |
| Windows 10 Version 1809 for x64-based Systems | 5082123 (Security Update) |
Critical | Remote Code Execution | Yes |
| Windows 10 Version 21H2 for 32-bit Systems | 5082200 (Security Update) |
Critical | Remote Code Execution | Yes |
| Windows 10 Version 21H2 for ARM64-based Systems | 5082200 (Security Update) |
Critical | Remote Code Execution | Yes |
| Windows 10 Version 21H2 for x64-based Systems | 5082200 (Security Update) |
Critical | Remote Code Execution | Yes |
| Windows 10 Version 22H2 for 32-bit Systems | 5082200 (Security Update) |
Critical | Remote Code Execution | Yes |
| Windows 10 Version 22H2 for ARM64-based Systems | 5082200 (Security Update) |
Critical | Remote Code Execution | Yes |
| Windows 10 Version 22H2 for x64-based Systems | 5082200 (Security Update) |
Critical | Remote Code Execution | Yes |
| Windows 11 Version 23H2 for ARM64-based Systems | 5082052 (Security Update) |
Critical | Remote Code Execution | Yes |
| Windows 11 Version 23H2 for x64-based Systems | 5082052 (Security Update) |
Critical | Remote Code Execution | Yes |
| Windows 11 Version 24H2 for ARM64-based Systems | 5083769 (Security Update) |
Critical | Remote Code Execution | Yes |
| Windows 11 Version 24H2 for x64-based Systems | 5083769 (Security Update) |
Critical | Remote Code Execution | Yes |
| Windows 11 Version 25H2 for ARM64-based Systems | 5083769 (Security Update) |
Critical | Remote Code Execution | Yes |
| Windows 11 Version 25H2 for x64-based Systems | 5083769 (Security Update) |
Critical | Remote Code Execution | Yes |
| Windows 11 Version 26H1 for ARM64-based Systems | 5083768 (Security Update) |
Critical | Remote Code Execution | Yes |
| Windows 11 version 26H1 for x64-based Systems | 5083768 (Security Update) |
Critical | Remote Code Execution | Yes |
| Windows Server 2016 | 5082198 (Security Update) |
Critical | Remote Code Execution | Yes |
| Windows Server 2016 (Server Core installation) | 5082198 (Security Update) |
Critical | Remote Code Execution | Yes |
| Windows Server 2019 | 5082123 (Security Update) |
Critical | Remote Code Execution | Yes |
| Windows Server 2019 (Server Core installation) | 5082123 (Security Update) |
Critical | Remote Code Execution | Yes |
| Windows Server 2022 | 5082142 (Security Update) |
Critical | Remote Code Execution | Yes |
| Windows Server 2022 (Server Core installation) | 5082142 (Security Update) |
Critical | Remote Code Execution | Yes |
| Windows Server 2022, 23H2 Edition (Server Core installation) | 5082060 (Security Update) |
Critical | Remote Code Execution | Yes |
| Windows Server 2025 | 5082063 (Security Update) |
Critical | Remote Code Execution | Yes |
| Windows Server 2025 (Server Core installation) | 5082063 (Security Update) |
Critical | Remote Code Execution | Yes |
Patches
| Article | Type | Restart |
|---|---|---|
5082198 |
Security Update | Yes |
5082123 |
Security Update | Yes |
5082200 |
Security Update | Yes |
5082052 |
Security Update | Yes |
5083769 |
Security Update | Yes |
5083768 |
Security Update | Yes |
5082142 |
Security Update | Yes |
5082060 |
Security Update | Yes |
5082063 |
Security Update | Yes |
Patch Diff
Remote, pre-auth double free (CWE-415) in the Windows IKE Extension service (ikeext.dll), reachable on UDP/500 and UDP/4500 with no authentication. During an IKE_SA_INIT exchange a Microsoft Security Realm Vendor ID payload makes IkeHandleSecurityRealmVendorId allocate a heap blob and store the pointer in the MMSA (Main Mode SA) at offset 0x208. When a fragmented IKE_AUTH message is reassembled, IkeReinjectReassembledPacket copies MMSA fields 0x178-0x21F (including the 0x208 blob pointer) into a stack struct, and IkeQueueRecvRequest shallow-copies it into a heap work item - so work_item+0xC8 ALIASES MMSA+0x208 (the reassembly buffer at 0x10 is deep-copied, but the blob pointer is not). Thread-pool processing calls IkeDestroyPacketContext -> WfpMemFree(work_item+0xC8) = FIRST free; later MMSA teardown (IkeCleanupMMNegotiation -> IkeDerefMMSA -> IkeFreeMMSA) frees MMSA+0x208 = SECOND free of the same allocation. Attacker sends IKE_SA_INIT (with the Security Realm Vendor ID) then >=2 SKF fragment payloads (type 0x35) carrying an invalid IKE_AUTH. Service runs as SYSTEM. IN-HOUSE ghidriff diff of 10.0.26100.7920 -> .8246 confirms the fix: IkeReinjectReassembledPacket now deep-copies the blob via IkeCopyBlob into a local and frees the COPY (not the aliased original), and IkeFreeMMSA/IkeBeginLifeExpireInplaceRekeyIkeV2 gain the same pattern - all GATED behind CFR flag Feature_3844326713, so both the aliasing and deep-copy paths ship in .8246. Credit: WARP & MORSE team at Microsoft; public analysis Richard Chen & Lucas Miller (TrendAI/ZDI).
| Function | Address | Change | Note |
|---|---|---|---|
IkeReinjectReassembledPacket |
78% match |
code (deep-copy of Security Realm blob added, CFR-gated) | Pre: blob pointer at param_3[0x12] copied directly into the stack struct (local_50 = param_3[0x12]); only the reassembly buffer (local_108) was freed. Post (Feature_3844326713 enabled): local_50 zeroed, and if param_3[0x12] != 0 the blob is deep-copied via IkeCopyBlob into &uStack_58; at exit, when the feature is on and the queue request succeeded, WfpMemFree(&local_50) frees the COPY. Removes the alias between work_item+0xC8 and MMSA+0x208. |
IkeFreeMMSA |
98% match |
code (feature-gated free of MMSA+0x208) | Updated with the same feature-gate pattern so MMSA+0x208 is only freed when the work item does not own a separate copy, preventing the second free. |
IkeBeginLifeExpireInplaceRekeyIkeV2 |
25% match |
code (same deep-copy pattern for the rekey path) | Adds IkeCopyBlob + WfpMemFree under Feature_3844326713 for the IKEv2 rekey path. |
IkeHandleSecurityRealmVendorId |
|
source (allocation site) | Allocates the Security Realm blob during IKE_SA_INIT and stores the pointer at MMSA+0x208 - the allocation that ends up double-freed. |
Attack Path
A Security Realm blob pointer is shallow-copied during IKEv2 fragment reassembly, aliasing the MMSA field and getting freed twice
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.
Known Exploits
Acknowledgments
WARP & MORSE team at Microsoft