Microsoft Windows GDI CreateDIBPatternBrushPt函数堆溢出漏洞(MS08-021)

lwpkjio 2008-10-07

受影响系统:
Microsoft Windows XP SP2
Microsoft Windows Vista SP1
Microsoft Windows Vista
Microsoft Windows Server 2008
Microsoft Windows Server 2003 SP2
Microsoft Windows Server 2003 SP1
Microsoft Windows 2000SP4
描述:
--------------------------------------------------------------------------------
BUGTRAQ ID: 28571
CVE(CAN) ID: CVE-2008-1083

Microsoft Windows是微软发布的非常流行的操作系统。

Windows的GDI函数CreateDIBPatternBrushPt用于处理WMF文件。由于错误地计算了用户数据,可能没有充分地分配堆块并在之后使用了该块,导致堆溢出。此外在解析EMF文件中用于描述文件中所包含位图的头结构时,直接在计算所要分配字节数的算术操作中使用了这个头中的一些值,这个计算可能溢出,最终导致堆溢出。如果用户受骗打开了特制的图形文件的话,就可能触发这些溢出,导致执行任意指令。

<*来源:Sebastian Apelt ([email protected]

链接:http://secunia.com/advisories/29704/
http://marc.info/?l=bugtraq&m=120768479804050&w=2
http://www.microsoft.com/technet/security/Bulletin/MS08-021.mspx
http://labs.idefense.com/intelligence/vulnerabilities/display.php?id=682
http://labs.idefense.com/intelligence/vulnerabilities/display.php?id=681
http://www.us-cert.gov/cas/techalerts/TA08-099A.html
*>

建议:
--------------------------------------------------------------------------------
临时解决方法:

* 通过修改注册表禁用元文件处理

1. 单击“开始”,单击“运行”,在“打开”框中键入Regedit,然后单击“确定”。
2. 找到并随后单击下列注册表子项:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\GRE_Initialize
3. 在“编辑”菜单上,指向“新建”,然后单击“DWORD”。
4. 键入DisableMetaFiles,然后按 Enter。
5. 在“编辑”菜单上,单击“修改”以修改DisableMetaFiles注册表项。
6. 在“数值数据”框中键入1,然后单击“确定”。
7. 退出注册表编辑器。
8. 重新启动计算机。

厂商补丁:

Microsoft
---------
Microsoft已经为此发布了一个安全公告(MS08-021)以及相应补丁:
MS08-021:Vulnerabilities in GDI Could Allow Remote Code Execution (948590)
链接:http://www.microsoft.com/technet/security/Bulletin/MS08-021.mspx

相关推荐