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(网友投票)