Skip to content
KitploitKITPLOIT
ToolsBlog
Submit
ToolsBlog
Submit

Hacking, PenTest, and Cybersecurity Tools for Your Security Arsenal!

Kitploit is a directory of hacking, cybersecurity, and pentesting tools. Discover the latest project updates to find vulnerabilities, analyze systems, automate testing, and strengthen your security.

··Feeds·Contact·Privacy·© 2026 Kitploit

Tool Directory

Categories

View all categories
Loading categories
CVE-2025-21333 — Proof-of-concept exploit for CVE-2025-21333, a heap-based buffer overflow in Hyper-V's vkrnlintvsp.sys leading to local privilege escalation via I/O Ring and token replacement. | Kitploit
Tools/GitHubGitHub/uname1able/cve-2025-21333
Privilege EscalationMemory ForensicsVulnerability AnalysisExploitationLearning & EducationBinary ExploitationLabs & Practice
GitHubuname1able/cve-2025-21333

CVE-2025-21333

Proof-of-concept exploit for CVE-2025-21333, a heap-based buffer overflow in Hyper-V's vkrnlintvsp.sys leading to local privilege escalation via I/O Ring and token replacement.

View Repository
21 month agoNot yet reviewed

Most Popular

View all →

Discover the most used tools by our community.

Explore all tools

Browse our collection of tools

View all tools →
Share

CVE-2025-21333

Hyper-V NT Kernel Integration VSP (vkrnlintvsp.sys) Paged Pool heap overflow → Local Privilege Escalation (LPE).
This directory contains lab PoC source code (based on MrAle98/CVE-2025-21333-POC, including a local patch).


1. Vulnerability Summary

ItemContent
CVECVE-2025-21333
TypeHeap-based Buffer Overflow
ImpactLocal Privilege Escalation (EoP); was marked as exploited in the wild
Componentvkrnlintvsp.sys
Vulnerable FunctionVkiRootAdjustSecurityDescriptorForVmwp
Pool TagViRo
Patch2025-01-14; Win11 23H2 must be ≥ 22631.4751 (KB5050021)

Root Cause

In VkiRootAdjustSecurityDescriptorForVmwp:

  1. Calculate allocation length using WORD: AclSize + sid1 + sid2 + 16
  2. When AclSize = 0xfff0, sum is 0x10040 → truncated to 0x40
  3. ExAllocatePool2(..., 0x40, 'ViRo')
  4. memmove(pool, dacl, AclSize) still copies the full 0xfff0

Core inequality: allocatedBytes(0x40) < accessEnd(0xfff0).

KD dynamic confirmation:

  • ExAllocatePool2 → @rdx = 0x40
  • memmove → @r8 = 0xfff0

Trigger Path

Requires enabling Windows Sandbox (and Nested Virtualization) so that the relevant syscall enters vkrnlintvsp.sys:

root@kitploit:~
PoC → NtCreateCrossVmEvent
    → VkiRootCalloutCreateEvent
    → VkiRootAdjustSecurityDescriptorForVmwp

2. Reproduced System Version

ItemValue
Guest OSWindows 11 23H2

Patched 23H2 (≥ 22631.4751) not reproducible. Requires enabling Nested Virtualization + Windows Sandbox.


3. Exploitation Chain (Brief)

  1. Spray WNF_STATE_DATA
  2. Dual-ACE construct AclSize=0xfff0, trigger overflow, enlarge adjacent WNF DataSize
  3. Free two holes, then allocate: IrRB (I/O Ring RegBuffers) + NpAt (PipeAttribute)
  4. Overwrite one entry in RegBuffers → forge IOP_MC_BUFFER_ENTRY in user mode
  5. IoRing Read/Write → arbitrary kernel read/write
  6. Token replacement → PRIV_ESC_OK → session-bound visible SYSTEM shell

Expected layout: 0x30 IrRB + 0x80 NpAt (requires found1=1 && found2=1).


4. Local Stabilization Key Points (22631.3447)

Mandatory contract relative to upstream:

Heap spray layout is non-deterministic, privilege escalation not 100%; can retry on failure.


5. Reference Links

  • MSRC: https://msrc.microsoft.com/update-guide/vulnerability/CVE-2025-21333
  • Upstream analysis: https://medium.com/@ale18109800/cve-2025-21333-windows-heap-based-buffer-overflow-analysis-d1b597ae4bae
  • Upstream PoC: https://github.com/MrAle98/CVE-2025-21333-POC
  • I/O Ring Primitive: https://windows-internals.com/one-i-o-ring-to-rule-them-all-a-full-read-write-exploit-primitive-on-windows-11/
Download Tool
Guest build10.0.22631.3447 (< 4751, reproducible)
vkrnlintvsp.sys10.0.22621.2506; SHA256 015DD1211569B6F85CC0041269F249BA5935A3DA89B615B502DF59EAD5354BB8
TopicKey Points
Dual-ACESingle ACE AceSize=0xf000 will be changed by SeCapture to about 0xf008 → no overflow; must use dual ACE to preserve kernel AclSize=0xfff0
Return codeCrossVm may return STATUS_INVALID_ACL (0xC0000077), must still continue scanning WNF
Timingfree CCC → Submit IoRing → Sleep(5000) → free DDD → pipe spray
SandboxAfter confirming IrRB/NpAt, then kill WindowsSandboxClient
ntos RVAExAllocatePool2=0xaac7a0, PsInitialSystemProcess=0xd1da60 (upstream offset on 3447 yields system EPROCESS: 0)
Visible shellCreateProcessAsUser + TokenSessionId + winsta0\Default → VISIBLE_SYSTEM_CMD_OK