安全研究

安全漏洞
Microsoft .NET Framework SDK MSIL工具堆溢出漏洞

发布日期:2006-03-27
更新日期:2006-03-27

受影响系统:
Microsoft .NET Framework SDK 1.1
Microsoft .NET Framework SDK 1.0 SP2
Microsoft .NET Framework SDK 1.0 SP1
Microsoft .NET Framework SDK 1.0 SP1
Microsoft .NET Framework SDK 1.0
描述:
BUGTRAQ  ID: 17243

Microsoft .NET Framework是一个流行的软件开发工具包。

Microsoft .NET Framework SDK的ildasm在反汇编DLL文件时存在堆溢出漏洞,导致在反汇编特制的DLL时可能出现拒绝服务。

出现异常的部分如下:

pvReturn = HeapAlloc(_crtheap, HEAP_ZERO_MEMORY, size);
if (pvReturn == NULL)
cmp dword ptr [pvReturn],ebx
jne $L19640+1 (7C3423B6h)
pvReturn = HeapAlloc(_crtheap, HEAP_ZERO_MEMORY, size);
push esi
push 8
push dword ptr [__crtheap (7C38C944h)]
call dword ptr [__imp__HeapAlloc@12 (7C37A07Ch)]
mov dword ptr [pvReturn],eax <-- The Exception Occurs Here

此外,如果*.il文件包含有对+/-64k大小函数的调用的话,ILASM中也会出现溢出。例如:

调用AAAAAAAAAAAAAAAAAAA .... (+/- 64k) AAAAA();



调用void [System.Windows.Forms]System.Windows.Forms.Form::AAAAAAAAAAAAAAAAAAA .... (+/- 64k) AAAAA();

攻击者可以利用这些漏洞导致拒绝服务,或可能执行任意指令。

<*来源:Dinis Cruz
        Kerem Kusmezer
  
  链接:http://secunia.com/advisories/19406/print/
        http://owasp.net/forums/257/showpost.aspx
        http://owasp.net/forums/234/showpost.aspx
*>

测试方法:

警 告

以下程序(方法)可能带有攻击性,仅供安全研究与教学之用。使用者风险自负!

http://owasp.net/forums/storage/5/234/ILHacking2.zip
http://owasp.net/forums/storage/5/257/BufferOverFlowInILASMandILDASM.zip

建议:
临时解决方法:

* 不要使用ildasm反汇编不可信任的DLL文件。

厂商补丁:

Microsoft
---------
目前厂商还没有提供补丁或者升级程序,我们建议使用此软件的用户随时关注厂商的主页以获取最新版本:

http://www.microsoft.com/technet/security/

浏览次数:3244
严重程度:0(网友投票)
本安全漏洞由绿盟科技翻译整理,版权所有,未经许可,不得转载
绿盟科技给您安全的保障