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(); 攻击者可以利用这些漏洞导致拒绝服务,或可能执行任意指令。 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 目前厂商还没有提供补丁或者升级程序,我们建议使用此软件的用户随时关注厂商的主页以获取最新版本: http://www.microsoft.com/technet/security/
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(); 攻击者可以利用这些漏洞导致拒绝服务,或可能执行任意指令。 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 目前厂商还没有提供补丁或者升级程序,我们建议使用此软件的用户随时关注厂商的主页以获取最新版本: http://www.microsoft.com/technet/security/