MS12-013:深入解析msvcrt.dll漏洞的技术细节与防护指南

本文详细分析了MS12-013安全公告中msvcrt.dll内存破坏漏洞的技术背景、攻击向量及防护措施,涵盖Windows Media Player攻击路径、Visual Studio版本影响及第三方开发者防护建议。

MS12-013:关于msvcrt.dll问题的更多信息

今天,我们发布了一个安全更新,用于修复Windows附带的Microsoft C运行时库(msvcrt.dll)中的一个关键级内存破坏漏洞。我们将此公告评为严重级别,因为攻击者可能通过诱骗受害者浏览启动Windows Media Player的恶意网页,或通过使用Windows Media Player打开恶意文件来触发该漏洞。

不常用的功能

尽管Windows Media Player攻击向量令人遗憾,但有人可能会查看受影响的DLL(msvcrt.dll),认识到许多Microsoft应用程序加载了该DLL,并推测大部分应用程序可能易受攻击。幸运的是,情况并非如此。根据我们在代码库中的观察,受影响的函数很少被Windows附带的组件使用。目前,Media Player是唯一已知的提供该漏洞利用路径的向量。即使发现其他攻击向量,在应用安全更新后,所有Microsoft产品都将受到保护。

使用最新Visual Studio版本构建的应用程序默认安全

所有使用Visual Studio 2003及更高版本构建的应用程序均不受此问题影响,除非它们专门加载msvcrt.dll。从Visual Studio 2003开始,任何动态链接到C运行时库的程序都将使用msvcrXX.dll而不是msvcrt.dll。

需要注意的是,msvcrt.dll是一个已知的DLL。这意味着它是一个由Windows拥有和构建的系统组件,仅用于未来系统级组件的使用。应用程序应使用并重新分发msvcrXX.dll。Windows只会在%WINDIR%\system32中查找msvcrt.dll。任何链接到msvcrt.dll的应用程序都将加载易受攻击的版本,无论当前目录中是否存在另一个版本——但再次强调,应用此公告可消除该问题。

第三方应用程序开发者的指南

如果您通过静态链接到Visual Studio附带的C运行时库开发了应用程序,那么您是安全的。如果您的程序动态链接到C运行时库,那么您应确保所有对象都链接到最新版本的Visual Studio。这将确保您使用msvcrXX.dll并且不受此问题影响。

  • Ali Rahbar, MSRC Engineering
comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计