Windows ikeext.dll IKEv2 Double-Free Remote Kernel Exploit — CVE-2026-33824
by EpSiLoNPoInTOrI · 2026-07-05
- Severity
- Critical
- CVE
- CVE-2026-33824
- Category
- network
- Affected product
- Windows IKEv2 IPsec driver (ikeext.dll)
- Affected versions
- Windows builds where ikeext.dll matches the exploit's hardcoded offsets (build-specific; not dynamically resolved in this PoC)
- Disclosed
- 2026-07-05
- Patch status
- unpatched
Tags
References
Archive entry
intelseclab/poc-archiveMetadata
| Field | Value |
|---|---|
| Date Added | 2026-07-05 |
| Last Updated | 2026-06 |
| Author / Researcher | EpSiLoNPoInTOrI |
| CVE / Advisory | CVE-2026-33824 |
| Category | network |
| Severity | Critical |
| CVSS Score | Not specified in source |
| Status | Weaponized |
| Tags | ikev2, windows-kernel, double-free, ikeext, rop-chain, heap-grooming, reverse-shell, anti-debug, packet-fragmentation |
| Related | N/A |
Affected Target
| Field | Value |
|---|---|
| Software / System | Windows IKEv2 IPsec driver (ikeext.dll) |
| Versions Affected | Windows builds where ikeext.dll matches the exploit’s hardcoded offsets (build-specific; not dynamically resolved in this PoC) |
| Language / Platform | C/C++, targeting Windows kernel-mode IKEv2 service over UDP/500 |
| Authentication Required | No |
| Network Access Required | Yes |
Summary
This repository is an in-progress C/C++ exploit prototype targeting a double-free vulnerability in Windows’ ikeext.dll, the kernel driver that handles IKEv2 IPsec negotiation over UDP port 500. The exploit constructs and sends fragmented (SKF) IKEv2 packets to trigger the double-free, then performs multi-threaded heap grooming to gain control over freed memory, builds a ROP chain from gadgets scanned out of loaded modules, and stages a payload intended to obtain arbitrary read/write and ultimately code execution, with a reverse-shell listener on port 4444 as the intended final payload delivery mechanism. The author’s own README explicitly states the project is unfinished and not fully functional — several referenced functions (AMSI/Defender/ETW bypass, environment checks, shell listener start/stop) may be incomplete, offsets are hardcoded to a specific Windows build with no dynamic resolution, and the ROP chain/shellcode staging is not fully wired together. The codebase also includes a heavy, self-described obfuscation layer (a custom bytecode VM, control-flow mangling, anti-debug thread, fake PE section signatures for VMProtect/Denuvo/etc., dynamic API resolution) that is part of the exploit’s own anti-analysis design rather than anything hidden or injected — the repo’s included correct_code.py/corriger.txt are the author’s own notes/scripts for fixing compilation issues and adding missing constants (e.g. OBFUSCATION_KEY3) in this obfuscation layer.
Vulnerability Details
Root Cause
A double-free condition in ikeext.dll’s IKEv2 payload-handling code path (referenced offset g_IkeextProcessIkePayload), reachable by sending crafted/fragmented IKEv2 SA negotiation packets over UDP/500, which the exploit combines with heap grooming to gain a controlled reallocation into the freed chunk.
Attack Vector
- Attacker sends UDP packets to port 500 on a target running the vulnerable Windows IKEv2 service to confirm reachability.
- Attacker constructs IKEv2 SA/Proposal/Transform/Nonce/Key-Exchange payloads, fragmented via SKF (
SKF_FRAGMENTS), crafted to trigger the double-free inikeext.dll’s payload handler. - Multiple threads perform heap grooming (fixed-size chunk allocation/free cycles) to control what reallocates into the freed region.
- A ROP chain — built from gadgets located via a byte-signature scanner in loaded modules, chained with
VirtualProtect/CFG-disable/stack-pivot gadgets — is used to gain arbitrary memory read/write and stage shellcode. - On success, the exploit intends to trigger a reverse shell callback to the attacker on TCP port 4444 (not fully wired end-to-end per the author’s own notes).
Impact
If completed and functional against a matching build, this would constitute unauthenticated remote code execution in Windows kernel context via the IKEv2/IPsec stack — a critical, wormable-class network vulnerability. As shipped, the author describes the exploit as not fully functional/finished, with hardcoded build-specific offsets and incomplete payload wiring.
Environment / Lab Setup
Target: Windows host with ikeext.dll (IKEv2 IPsec service) reachable on UDP/500, matching the hardcoded offsets in IkEv2.cpp
Attacker: Windows/MSVC build toolchain (project depends on runassys/ headers not included here), ws2_32/iphlpapi/bcrypt/Version libs; listener on TCP/4444 for the intended reverse shell
Proof of Concept
PoC Script
See
IkEv2.cppin this folder (author’s own build-fix notes incorrect_code.pyandcorriger.txtare included as-is for completeness).
| |
When run against a matching target, the binary probes reachability over UDP, sends the crafted fragmented IKEv2 packets to trigger the double-free, performs heap grooming and ROP-chain-based exploitation, and is intended to spawn a reverse shell back to the attacker on port 4444; per the author’s README this end-to-end chain is not fully functional in the current state, and several supporting functions (AMSI/Defender/ETW bypass, environment detection, listener start/stop) may be incomplete or build-dependent.
Detection & Indicators of Compromise
Signs of compromise:
- Crash or restart of the IKEv2/IPsec service (
ikeext.dll/associated service process) correlating with bursts of fragmented IKEv2 packets from an external host. - Unexpected outbound TCP connections on port 4444 from a host running the IPsec/IKEv2 service.
- Presence of unrecognized PE binaries with spoofed protector section names (
.vmp0,UPX0,.enigma1,.winlice, etc.) that do not correspond to any actually-applied packer.
Remediation
| Action | Detail |
|---|---|
| Primary fix | No vendor patch confirmed as of 2026-07-05 — monitor Microsoft’s advisory channel for CVE-2026-33824 and apply the corresponding Windows update once released. |
| Interim mitigation | Restrict/firewall UDP/500 (IKEv2) exposure to trusted networks only, disable the IPsec/IKEv2 service on hosts that do not require it, and monitor for anomalous fragmented IKEv2 traffic and unexpected outbound connections on non-standard ports (e.g. 4444). |
References
Notes
Mirrored from https://github.com/EpSiLoNPoInTOrI/IKEV2-POC on 2026-07-05. This is a weaponized, advanced Windows kernel exploit (shellcode + reverse shell, with the repo’s own obfuscation/anti-debug/API-hooking layer, including OBFUSCATION_KEY3 and related constants defined in its own correct_code.py). It has been manually reviewed by the archive maintainer and found to contain no hidden malware — the obfuscation is the exploit’s own self-described anti-analysis design, not injected malicious content — but it remains advanced/dangerous, incomplete-per-author-notes code. Review thoroughly before use; do not run casually.
| |