本仓库包含一个 YARA 规则,用于检测可能利用 CVE-2026-21509 漏洞的 RTF 文档,
以及一个 Python 脚本,用于检查 MS Office 文件是否包含与该漏洞相关的 Shell.Explorer.1 OLE 对象。
更多技术细节请参阅 https://decalage.info/CVE-2026-21509/ 。
该规则匹配包含 Shell.Explorer.1 OLE 对象的 RTF 文档,这些对象被用于
利用 CVE-2026-21509 漏洞。它可以检测所有上传到
MalwareBazaar 的样本:https://bazaar.abuse.ch/browse/tag/CVE-2026-21509/
合法文档没有充分理由嵌入此类 OLE 对象(该对象用于 将 Internet Explorer 引擎嵌入到其他应用程序中),因此误报应该非常少。
YARA 规则提供两个版本:
CVE-2026-21509_RTF.yar 允许在 CLSID 字符串的每个字符之间包含空白字符。
此版本速度较慢,但其行为与 MS Word 中的 RTF 解析器一致,后者允许此类空白字符。CVE-2026-21509_RTF_nows.yar 不允许空白字符。此规则速度更快,但如果
在 CLSID 字符串中插入了空白字符或换行符,则可能会漏掉某些检测。根据微软公告 https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-21509 ,
CVE-2026-21509 漏洞与 CLSID EAB22AC3-30C1-11CF-A7EB-0000C05BAE0B 相关,
该 CLSID 对应 "Shell.Explorer.1" COM 对象,可用于从任何应用程序打开旧版
Internet Explorer 引擎(又称 Trident/MSHTML)。
因此,要从 MS Office 文档中利用 CVE-2026-21509,攻击者可以使用 "Shell.Explorer.1" 类型的 OLE 对象,或者使用带有特殊 URL 的外部关系来 触发 Internet Explorer 引擎的使用,正如 CVE-2021-40444 中 使用 "mhtml:" URL 的情况一样。
该脚本仅尝试识别这两种情况。