Skip to content
KitploitKITPLOIT
工具漏洞利用博客
Log in
提交
工具漏洞利用博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

订阅源联系隐私© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
CVE-2026-83991-writeup-and-poc — 概念验证,演示了 Windows 云文件访问检查绕过(CVE-2026-83991),该漏洞通过 supersede 语义将只读文件转换为云占位文件,并附有详细的技术分析和复现步骤。 | Kitploit
工具/GitHubGitHub/karollooool/cve-2026-83991-writeup-and-poc
权限提升漏洞分析漏洞利用二进制利用
GitHubkarollooool/cve-2026-83991-writeup-and-poc

CVE-2026-83991-writeup-and-poc

概念验证,演示了 Windows 云文件访问检查绕过(CVE-2026-83991),该漏洞通过 supersede 语义将只读文件转换为云占位文件,并附有详细的技术分析和复现步骤。

查看仓库

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享
网站
172318天前尚未审核

CVE-2026-83991:取代调用者无法删除的文件

我把这些行放在一起,因为把它们分开会让这个漏洞看起来比实际更复杂:

CreateFileW, GENERIC_WRITE             error 5
DeleteFileW                            error 5
CfCreatePlaceholders, SUPERSEDE        S_OK
per-entry Result                       S_OK

写入打开、删除尝试和 Cloud Files 调用使用相同的路径名和相同的线程令牌。在最后一次调用之前,该名称属于一个具有受保护 DACL 且没有重解析点的普通文件。之后,FSCTL_GET_REPARSE_POINT 返回 IO_REPARSE_TAG_CLOUD。

Microsoft 将该结果发布为 CVE-2026-83991,即 Windows Cloud Files 微筛选器驱动程序篡改漏洞。我在报告中将其描述为不正确的授权,并建议归类为 CWE-863。Microsoft 则将其分配为 CWE-306。

该程序在创建测试目录、文件、DACL 或同步根之前,先安装其受限模拟令牌。并不存在先提升权限、再仅为那个关键调用切换令牌的情况。如果账户具有 Administrators SID,CreateRestrictedToken 会将其设为仅拒绝;如果该 SID 从未存在,程序也会记录该情况。完整性级别设置为 Medium。

父目录和叶文件故意不具有匹配的 DACL。当前用户在目录上获得以下权限:

FILE_GENERIC_READ |
FILE_GENERIC_WRITE |
FILE_GENERIC_EXECUTE |
DELETE

现有文件获得 FILE_GENERIC_READ,并且其 DACL 受到保护,不会继承。SYSTEM 和 Administrators 保留完全控制权。由于令牌中的 Administrators SID 不存在或仅为拒绝,Administrators 允许 ACE 无法为此线程授予访问权限。

父目录上的 DELETE 位看起来可疑,直到明确它所适用的对象。它允许删除目录本身。删除其子项需要 FILE_DELETE_CHILD,这是父 ACE 中不包含的另一个位。DeleteFileW 接受叶文件上的 DELETE 或父目录上的删除子项权限。该测试两者都不具备,这就是为什么错误 5 是预期的控制结果。

我在父目录上保留了 FILE_GENERIC_WRITE。当对象是目录时,其 FILE_WRITE_DATA 位即为 FILE_ADD_FILE。调用者可以创建子项,因此父目录满足 CfCreatePlaceholders 所记录的 WRITE_DATA 或 WRITE_DAC 要求。如果没有该权限,API 会在到达我所报告的案例之前就未通过其基目录检查。

除非此代码块为真,否则程序不会注册同步根:

write open denied with ERROR_ACCESS_DENIED
DeleteFileW denied with ERROR_ACCESS_DENIED
read open succeeded
leaf DACL protected
starting object not a reparse point

我让它在此处停止,因为如果叶文件已经可写、可删除或是一个重解析点,那么运行后期出现 S_OK 将毫无意义。

在这些控制之后,程序将父目录注册为同步根,使用仅包含终止项的回调表将其连接,并以标志 0x4 提交现有文件名:

placeholder.RelativeFileName = leaf_name;
placeholder.FsMetadata.BasicInfo = basic_info;
placeholder.FsMetadata.FileSize = standard_info.EndOfFile;
placeholder.FileIdentity = &run_id;
placeholder.FileIdentityLength = sizeof(run_id);
placeholder.Flags = CF_CREATE_SUPERSEDE;

create_hr = cf.Create(root, &placeholder, 1, 0, &processed);

CF_PLACEHOLDER_CREATE_FLAG_SUPERSEDE 被记录为覆盖现有占位符。此文件并非占位符。PoC 在应用叶 DACL 之前设置 FILE_ATTRIBUTE_NORMAL,并在调用 Cloud Files 之前确认重解析点位已清除。

在受影响的系统上,批量调用和条目均返回 S_OK,且 CreateUsn 非零。该文件获得了重解析点属性。向文件系统请求重解析数据返回标签 0x9000001A,即 IO_REPARSE_TAG_CLOUD。

EntriesProcessed == 1 并不能证明成功,因为 API 文档也将失败的条目计入其中。确认来自两个 HRESULT、创建 USN、重解析属性以及 Cloud 标签。

FILE_ID_INFO 在调用前后保持不变。现有文件对象获得了 Cloud Files 状态;并非只是另一个文件出现在同一路径名下。

MSRC 列出的最早受影响版本是 17763.0,即 Windows 10 版本 1809 和 Windows Server 2019 世代。这将公开线索置于 2018 年,比 2026 年 9 月的修复早了近八年。

下载工具