razureink/cve-2026-21509-office_security_bypass_reproduction

GitHub: razureink/cve-2026-21509-office_security_bypass_reproduction

该项目复现了 CVE-2026-21509 Microsoft Office 安全功能绕过漏洞,提供生成可绕过受保护视图的恶意文档的 PoC 脚本。

Stars: 0 | Forks: 0

# CVE-2026-21509 — Microsoft Office 安全功能绕过 - **CVE-2026-21509** 是一个 Microsoft Office 安全功能绕过漏洞 - **CVSS 7.8**,已被 **APT28(俄罗斯黑客组织)** 积极用于针对乌克兰的攻击 - 在安全决策中依赖于不受信任的输入(**CWE-807**)——“破坏 kill bit” - 允许通过恶意文档绕过**受保护的视图**和 **OLE 缓解措施** - 影响 **Office 2016、2019、2021、2024、Microsoft 365 Apps** - 于 **2026 年 1 月** 发布了紧急的带外补丁 ## 概述 CVE-2026-21509 是 Microsoft Office 中的一个安全功能绕过漏洞,允许攻击者绕过受保护的视图和 OLE(对象链接与嵌入)缓解措施。该缺陷源于 Office 验证 kill bit 的方式——kill bit 是一种旨在阻止危险 CLSID 的注册表机制。通过提供一个经过篡改 CLSID 的特制 OLE 对象,或者通过操纵激活上下文,攻击者可以诱骗 Office 信任一个本应被阻止的嵌入式控件。 ## 技术细节 **根本原因:** CWE-807 — 在安全决策中依赖于不受信任的输入。 对 COM/OLE 对象的 kill bit 检查使用了可以通过文档级覆盖来受攻击者影响的数据。具体而言,某些 Office 文档中的 IDataObject 或 IOleObject 实现可以将 kill bit 查找重定向到攻击者控制的注册表路径,或者提供一个完全绕过阻止列表的 GUID。 **攻击向量:** 1. 一个特制的 RTF 或 DOCX 文件嵌入了一个恶意的 OLE 对象(例如 shell 执行 COM 控件)。 2. 打开时,Office 会在激活 OLE 对象之前查询 kill bit 注册表。 3. 该文档提供一个伪造的 CLSID,或者通过指向非标准注册表位置的 OLE 动词/数据路径条目来篡改查询。 4. 在预期路径中未找到 kill bit,因此 Office 无限制地启动该控件。 5. 该控件执行攻击者提供的代码(例如 MSHTA、PowerShell 或脚本引擎)。 ## 受影响版本 | 产品 | 版本 / 构建版本 | |-----------------------------|------------------------------------| | Office 2016 | KB5002711 之前的所有版本 | | Office 2019 | KB5002712 之前的所有版本 | | Office 2021 | KB5002713 之前的所有版本 | | Office 2024 | KB5002714 之前的所有版本 | | Microsoft 365 Apps | 2501 之前的版本(2026 年 1 月) | ## 复现步骤 1. 在 Windows 10/11 x64 测试环境中安装受影响版本的 Microsoft Office(见上表)。 2. 使用提供的 `exploit.py` 生成恶意文档: python exploit.py --output malicious.doc --payload "calc.exe" 3. 在 Office 中打开生成的文件。**受保护的视图应被绕过**,并且 payload 将被执行。 4. 应用补丁后,同一个文件应该会被阻止——以此确认修复有效。 ## 概念验证 此存储库中的 `exploit.py` 脚本会生成一个特制的 RTF/DOC 文件,该文件: - 嵌入一个 CLSID 设为 `{0002DF01-0000-0000-C000-000000000046}` 的 OLE 对象(DHTML Edit Control —— 一种常被武器化的控件)。 - 篡改 RTF 中的 `\objdata` 和 `\object` 组,以绕过激活期间的 kill bit 查找。 - 可选地捆绑一个在激活时运行的脚本 payload(PowerShell 或 MSHTA)。 **⚠ 警告:** 此 PoC 专为授权的安全测试提供。请勿对您不拥有或未获得明确测试许可的系统使用。 ## 缓解措施 - **安装 2026 年 1 月的带外更新** —— 这是唯一的彻底修复方法。 - 审查并强制执行 KB5002711 中提供的**增强型 kill bit 列表**。 - 为 Office 子进程创建启用**攻击面减少 (ASR) 规则**。 - 考虑使用 **Microsoft Defender for Office 365** 来阻止已知的漏洞利用文档。 - 通过**组策略**限制 OLE 对象激活: `Computer Configuration > Administrative Templates > Microsoft Office ## 参考 - [CVE-2026-21509 — MITRE](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2026-21509) - [CWE-807:依赖于不受信任的输入](https://cwe.mitre.org/data/definitions/807.html) - [Microsoft 安全响应中心 — 2026 年 1 月 OOB 版本](https://msrc.microsoft.com/) - [APT28 / Fancy Bear — 活动概述](https://attack.mitre.org/groups/G0007/)
标签:Go语言工具, OLE对象, 安全特性绕过, 微软Office, 恶意文档, 漏洞复现, 逆向工具