CVE-2026-23988Rufus是一款常用的USB启动盘创建工具,用于格式化和创建可启动USB闪存驱动器。该工具在处理Fido PowerShell脚本时存在严重的竞态条件(TOCTOU - Time-of-check to time-of-use)安全漏洞。攻击者可以利用文件检查与文件使用之间的时间窗口,在低权限用户环境下以管理员权限执行任意代码。由于Rufus需要以管理员权限运行以完成USB格式化操作,但同时会将脚本写入标准用户可写的%TEMP%临时目录,且在文件操作过程中未实施任何文件锁定机制,这为本地攻击者提供了权限提升的机会。该漏洞的CVSS评分为7.3,属于高危漏洞,成功利用可导致系统完全沦陷。
漏洞根源在于src/net.c文件中的Fido PowerShell脚本处理流程存在TOCTOU竞态条件。具体来说,Rufus在创建、验证和执行脚本的过程中存在以下问题:
1. 文件写入阶段:Rufus以管理员权限运行,但将脚本文件写入%TEMP%目录,该目录默认对所有标准用户具有写权限。
2. 验证与执行间隙:程序在写入脚本后、执行前存在时间窗口,期间未对文件进行锁定或完整性校验。
3. 攻击者利用方式:本地低权限攻击者可通过监控%TEMP%目录,在合法脚本写入后、执行前的瞬间,使用恶意脚本替换目标文件。
4. 权限提升结果:由于Rufus以管理员权限执行被替换的恶意脚本,攻击代码将以SYSTEM或Administrator权限运行,实现本地权限提升。
此漏洞属于经典的检查-使用竞态条件,攻击成功需要攻击者具有本地访问权限并能进行文件监控和快速替换操作。攻击复杂度为中等,需要精确的时序控制。