多年来,微软 Windows 操作系统(世界上使用最广泛的操作系统)一直存在安全漏洞。随着时间的推移,微软的安全意识也越来越强,严重漏洞的数量已经减少,但我们时不时会发现另一个漏洞让整个世界不安全。这次就是其中一次。
在最近的补丁星期二发布中,微软发布了一个关键修复程序,修复了被标识为CVE-2025-21298 的高风险漏洞。该安全漏洞的 CVSS 严重性评级接近最高 9.8,攻击者只需发送一个专门设计的文件,即可在 Windows 系统上远程执行恶意代码。该问题直接影响 Microsoft Word 和 Outlook。让我们来探究一下这个漏洞是如何发生的。
了解攻击面
该漏洞存在于 ole32.dll 的UtOlePresStmToContentsStm函数中,该函数处理嵌入在电子邮件/文件中的 OLE 对象。当 Outlook 或 Word 呈现这些对象时,它会调用此函数来处理存储流之间的数据转换。这创造了一个理想的攻击媒介,因为电子邮件客户端和文字处理器会在预览期间自动处理这些对象,无需用户交互。
要了解为什么这特别危险,想象一下打开你的电子邮件收件箱。预览窗格会自动加载电子邮件,如果恶意电子邮件包含特制的 OLE 对象,则在你点击邮件之前就会触发漏洞。
技术细节
例如,当 Outlook 开始处理电子邮件中嵌入的 OLE 对象时,该过程就开始了。当电子邮件预览窗格呈现内容时,这个过程会自动发生。嵌入的对象会触发 ole32.dll 来处理内容转换。
接下来,ole32.dll 通过堆管理器在内存中创建一个新的 CONTENTS 流。此分配遵循标准 COM 对象模式执行,这使得内存位置相对可预测。
第一个释放操作是正常处理的一部分,其中 ole32.dll 释放了 CONTENTS 流。然而,至关重要的是,指向这个释放内存的指针并没有被取消。这就产生了所谓的漏洞窗口 - 一个我们有一个指向释放内存的悬空指针的时期。
在此漏洞窗口期间,如果我们能够触发UtReadOlePresStmHeader中的故障,清理例程将尝试再次释放相同的内存位置。第二次释放操作会破坏堆内存管理结构。
一旦堆被破坏,系统的内存管理就会受到威胁,攻击者就有可能控制该进程。由于这种情况发生在 Outlook 的环境中,而 Outlook 通常以提升的权限运行,因此影响尤其严重。
EXP
在本指南中,我们将使用由ynwarcs触发内存损坏的 RTF 文件。
PoC 位于:https://github.com/ynwarcs/CVE-2025-21298/blob/main/poc/cve-2025-21298-poc.rtf
接下来,让我们打开 MS Office 并将 WinDbg 附加到该进程:
WinDbg 允许在文件处理期间跟踪内存操作。附加到进程后,键入g(基本调试命令,表示“go”)以从当前位置继续执行,直到下一个断点被命中或程序终止。接下来,拖放您的 RTF 文件,您将看到一条有关内存损坏的消息。
缓解和保护
在撰写本文时,Censys 观察到 482,270 个暴露的 Exchange 服务器和 Outlook Web Access 门户。
虽然这些服务器并不直接受到 CVE-2025-21298 的攻击(因为漏洞存在于 Windows OLE 组件中,而不是 Exchange 或 Outlook 本身),但它们凸显了易受攻击系统的潜在规模。优先修补和强化这些环境对于降低风险至关重要。
原文始发于微信公众号(Ots安全):Microsoft Windows 中新的无点击严重漏洞:CVE-2025-21298
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论