<<< Date Index >>>     <<< Thread Index >>>

Re: [Full-Disclosure] Crash IE with 11 bytes ;)



Here's a detailed description of what's going wrong with [STYLE]@;/*

The problem is the unterminated comment "/*"; IE computes the length of the 
comment for a memcpy opperation by substracting the end pointer form the start 
pointer. The comment starts behind "/*" and should end at "*/", but since there 
is no terminator, the start of the string is used. IE there for calculates the 
string to be -2 unicode characters long. The subsequent memcpy will try to copy 
0xFFFFFFFE bytes untill it gets a read or write exception. (You will see the 
offending instruction is a REP MOVSD)

Unfortunately for us hackers, I believe you cannot control the length value for 
the memcpy other then setting it to -2. So you will always cause a read or 
write exception. You will only overwrite a small part of the heap before the 
exception is caused so overwriting the SEH to controlling execution is also 
ruled out.

Conclusion: lame DoS

I did find another way to use this to cause an exception at a different 
location:
[SCRIPT]
  d = window.open().document;
  d.write("x");
  d.body.innerHTML = "<STYLE>@;/*";
[/SCRIPT]
This will crash because of a null pointer in a CMP [ESI], 0.
It didn't look interesting to me, so no detailed investigation.

Cheers,
SkyLined

----- Original Message ----- 
From: "Phuong Nguyen" <phuong@xxxxxxxxxxxx>
To: <full-disclosure@xxxxxxxxxxxxxxxx>
Sent: Friday, July 23, 2004 19:17
Subject: [Full-Disclosure] Crash IE with 11 bytes ;)


> Hey,
> 
> I thought you guys might want to know that it only takes 11 bytes to crash 
> IE 5.x , 6.x SP1. CSS memory corruption vulnerability. All you need to do 
> is <style>;@/* ;) simple as that. More details@ 
> http://www.ecqurity.com/adv/IEstyle.html
> 
> Phuong
> 
> 
> _______________________________________________
> Full-Disclosure - We believe in it.
> Charter: http://lists.netsys.com/full-disclosure-charter.html