MS10-001:字体文件解压缩漏洞
MS10-001修复了Microtype Express字体中LZCOMP解压缩器的一个漏洞(CVE-2010-0018)。本文旨在回答有关此领域更新的一些问题。
问题是什么?
t2embed.dll对从LZCOMP位流解码的长度未正确执行边界检查。这使得复制循环可能违反预期的工作缓冲区。
EOT功能是否可通过第三方代码访问?
是的,t2embed库提供可由第三方代码使用的EOT功能。许多第三方导入t2embed进行字体渲染,尽管有些可能选择实现自己的字体渲染。
为什么利用指数评级为2?
利用指数评级为2是由于成功利用的可能性较低。存在堆准备和可预测性、堆数据损坏以及获取异常处理程序的竞争条件等障碍,使得成功利用不太可能。
成功利用的可能性如何?
由于在32位系统XP及更高版本上t2embed执行的边界检查性质,通过旧检查的唯一缓冲区+索引组合将指向地址0x80000000及以上。由于这些区域在IOPL 3运行时无法访问,进程将崩溃(访问违规),尝试运行任意代码将失败。
在Windows 2000上,此漏洞可能被滥用以实现代码执行。在Windows 2000之后的32位平台上,不当的内存访问通常以地址0x80000000或以上的读取访问违规形式出现,尽管在启用/3GB的系统上,内存布局可能被操纵以损害宿主进程的完整性。在未启用/3GB(默认)的系统上存在稳定性(拒绝服务)影响,而启用/3GB的系统存在代码执行风险,尽管Microsoft产品中不存在已知的攻击向量。
第三方产品如果(A)支持大地址(http://msdn.microsoft.com/en-us/library/wz223b1z(VS.80).aspx),(B)使用t2embed,且(C)在启用/3GB的系统上运行,应被视为可被利用。
在64位平台上,不当的内存访问通常以内核模式地址的读取访问违规形式出现,这会影响应用程序稳定性(拒绝服务),没有代码执行威胁。
以下是描述上述利用场景的表格:
系统配置 | /2GB未运行大地址感知应用 | /3GB未运行大地址感知应用 | /2GB运行大地址感知应用 | /3GB运行大地址感知应用 |
---|---|---|---|---|
32位XP及更新 | 拒绝服务 | 拒绝服务 | 拒绝服务 | 代码执行机会 |
64位XP及更新 | 拒绝服务 | 拒绝服务 | 拒绝服务 | 拒绝服务 |
Windows 2000 | 代码执行机会 | 代码执行机会 | 代码执行机会 | 代码执行机会 |
Windows 2000的严重性评级为关键,因为漏洞代码通过客户端应用程序暴露,这些应用程序可以渲染EOT字体,而不需要用户交互/通知。(例如Microsoft Internet Explorer、Microsoft Office PowerPoint和Microsoft Office Word)
攻击向量是什么?
远程攻击向量全部在用户模式:
- 恶意字体(EOT)通过恶意网站上的文件传递,默认在所有版本的Internet Explorer中渲染。
- 通过社交工程诱使受害者打开包含畸形嵌入字体的恶意Office文档,该字体在打开Office文档时渲染(PowerPoint和Word文档是最可能的攻击向量)。
如何保护自己?
防范此漏洞的最佳选择是应用MS10-001的更新。
如先前SRD博客文章所述,另一个选项是禁用IE中解析/加载嵌入字体的支持。此方法的副作用是会导致使用嵌入字体技术的网站无法正确渲染。
什么是/3GB?如何判断系统是否启用了/3GB?
/3GB是一个开关,它允许32位系统受益于3GB的可寻址内存,而不是默认的2GB内存。有关/3GB的更多信息可以在此处找到。您可以通过在shell中键入以下命令来检查系统是否启用了/3GB:
|
|
注意increaseuserva变量。如果未设置(或设置为2048),则未启用/3GB。如果此值设置为3072(如此处所示),则启用了/3GB。
什么是LZCOMP?
LZCOMP是LZ77主题的一种压缩算法变体。有关LZCOMP及其与LZ77区别的详细解释可以在此处找到。
LZCOMP解压缩器组件在系统上的位置?
LZCOMP解压缩器存在于t2embed动态链接库中。它通常位于%SystemRoot%\System32,并被Office和Internet Explorer等程序导入。
此字体漏洞与MS09-065修复的先前字体漏洞有何不同?
此漏洞存在于用户模式组件(t2embed.dll)中,而先前的字体漏洞(MS09-065)修复的是内核模式组件(win32k.sys)。
我要感谢Matt Miller的一般指导,以及MSRC工程团队的Bruce Dang和Robert Hensing在此版本中的努力。
-Brian Cavenah, MSRC Engineering 发布内容“按原样”提供,不提供任何保证,也不授予任何权利。