Windows Media Player崩溃无法用于代码执行
发布日期:2008年12月29日
作者:Security Research & Defense团队
阅读时间:1分钟
圣诞节当天,MSRC开启了一个案例,追踪Bugtraq上发布的概念验证(POC),描述了一个“畸形的WAV、SND、MID文件可能导致远程整数溢出”。到周六晚间,我们看到有信誉的互联网来源声称该漏洞可能导致在系统上执行任意代码。
我们立即展开调查,发现该漏洞无法被利用来执行任意代码。
让我们深入分析原因。
该POC是一个MIDI文件,由quartz.dll处理——这是DirectShow框架的核心组件。我们之前曾在此博客过该组件。WAV、SND和MID文件扩展名均由quartz.dll处理,这解释了发现者关于解析这三种文件类型时触发异常的声明。
这个特定的崩溃是在执行div指令时未处理的CPU异常。当处理器执行“div reg”指令时,会进行以下操作:
|
|
如果结果无法容纳在32位寄存器中,就会产生CPU异常。quartz.dll未处理此异常。这里没有内存损坏,该值似乎也未用于任何内存分配。相反,该操作计算的是与媒体播放速率相关的值。
我们通过内部模糊测试已经发现了这个问题。当时正确将其分类为可靠性问题,对客户没有安全风险。我们确实希望在未来的服务包或平台版本中修复这些可靠性问题。例如,这个特定的漏洞已在Windows Server 2003 Service Pack 2中修复。
Christopher Budd也在MSRC博客上发布了关于此问题的文章。
Jonathan Ness和Fermin J. Serna,SVRD博客作者
文章按“原样”提供,不提供任何担保,也不授予任何权利。