
由 Michele Campa 领导的 Exodus Intelligence 研究团队披露了微软 Cloud Files 迷你过滤驱动(cldflt.sys)中的一个权限提升漏洞,该漏洞影响 2025 年 10 月之前的所有 Windows 版本。该漏洞被分配编号 CVE-2025-55680(CVSS 评分 7.8),源于驱动通过 Cloud Files API(CfCreatePlaceholders)验证和创建占位文件时存在的竞态条件——该机制被 OneDrive 和 SharePoint 同步引擎等服务使用。
漏洞技术细节
该漏洞存在于 cldflt.sys 的 HsmpOpCreatePlaceholders() 函数中,允许低权限攻击者在系统任意位置创建或覆盖文件及目录,进而通过 DLL 侧加载实现本地权限提升(LPE)。
微软 Cloud Files API 允许 Windows 将本地目录与远程云存储同步。"同步根"目录中的每个文件可以完整文件、固定文件或占位文件形式存在——后者是轻量级的磁盘引用,其内容按需加载。
驱动 cldflt.sys 将这些操作暴露给用户模式,并处理通过 CfCreatePlaceholders() API 发送的请求,该 API 使用 I/O 控制代码 0x903BC 指示内核创建新的占位条目。当调用该 API 时,驱动会调用 HsmpOpCreatePlaceholders() 在同步根目录下验证并创建这些占位文件。
漏洞成因分析
Campa 的分析指出:"在创建占位文件之前,HsmpOpCreatePlaceholders() 函数通过检查保存文件名的用户空间缓冲区是否包含 \ 或 : 字符来验证文件名...在检查用户提供的文件名后,它会调用 FltCreateFileEx2() 函数来创建文件。"
问题出在这两个步骤之间。验证检查和文件创建之间存在一个微小但关键的时间窗口。在此期间,保存文件名的用户模式缓冲区在内核使用前可能被修改。
报告继续说明:"由于该检查的实现方式,在文件名验证和文件创建之间存在一个时间窗口,攻击者可在此期间修改文件名,从而在系统任意位置创建文件或目录,最终导致权限提升。"
由于内核将用户提供的内存直接映射到自己的地址空间(MmMapLockedPagesSpecifyCache()),用户态的任何竞态修改都会立即影响内核视图。
漏洞利用过程
实际利用中,攻击者通过在 FltCreateFileEx2() 调用前向已验证的文件名注入反斜杠(\)字符来利用该竞态条件。这种操作允许驱动跟随 NTFS 连接点或同步根目录外的符号链接,从而在受保护目录(如 C:\Windows\System32)中创建文件。
Campa 演示称:"在[8]和[10]之间存在一个时间窗口,恶意攻击者可通过插入 \ 字符来修改 placeholderPayload.relName 字符串,从而实现文件/目录的任意创建。"
完整的漏洞利用链需要四个协调阶段:
- 准备阶段:攻击者使用 CfRegisterSyncRoot() API 注册新的同步根目录,并创建指向特权路径(如 C:\Windows\System32)的子目录(例如 JUSTASTRING)作为连接点
- 触发竞态:多个线程反复发出 CfCreatePlaceholders() 请求,同时其他线程修改内存中的文件名缓冲区
- 权限提升:竞态成功后,驱动跟随连接点在 System32 中创建恶意 DLL
- 执行阶段:合法的 Windows 服务加载恶意 DLL,最终实现 SYSTEM 级别的代码执行
安全建议
成功利用后,创建的文件将继承内核级信任,允许攻击者通过许多 Windows 服务中存在的 DLL 侧加载机制加载它。微软已在 2025 年 10 月的补丁星期二更新中修复 CVE-2025-55680。建议用户立即安装最新的 Windows 安全更新。使用 OneDrive 按需文件、SharePoint 同步或其他利用 Cloud Files API 服务的企业尤其需要警惕。
参考来源:
本文为 独立观点,未经授权禁止转载。
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf
客服小蜜蜂(微信:freebee1024)



