Mozilla Firefox 'location.hostname' Property Lets Remote Users Bypass Domain Security Restrictions
SecurityTracker Alert ID: 1017654|
SecurityTracker URL: http://securitytracker.com/id/1017654
(Links to External Site)
Updated: Feb 23 2007|
Original Entry Date: Feb 15 2007
Disclosure of authentication information, Disclosure of system information, Disclosure of user information, Modification of authentication information, Modification of system information, Modification of user information|
Fix Available: Yes Vendor Confirmed: Yes Exploit Included: Yes |
Version(s): 126.96.36.199 and prior 2.x versions; also versions prior to 188.8.131.52|
A vulnerability was reported in Mozilla Firefox. A remote user can bypass domain security restrictions.|
A remote user can create HTML to write a specialy crafted hostname value to the 'location.hostname' DOM property that, when processed by Firefox, will be interpreted differently by different parts of the browser's code. A hostname containing a null character ('\x00'), such as 'evil.com\x00foo.example.com', may be interpreted by the DOM code as part of the 'example.com' domain and interpreted by the DNS resolver code as 'evil.com'.
As a result, a remote user can create HTML that can set cookies in an arbitrary domain and modify the 'document.domain' property to bypass the same-origin policy for XMLHttpRequest() access and cross-frame and cross-window access.
A demonstration exploit is available at:
The original bug report is available at:
Michal Zalewski reported this vulnerability.
A remote user can bypass domain security restrictions.|
The vendor has issued a fix (184.108.40.206, 220.127.116.11).|
The Mozilla advisory is available at:
Vendor URL: www.mozilla.org/security/announce/2007/mfsa2007-07.html (Links to External Site)
Access control error|
|Underlying OS: Linux (Any), UNIX (Any), Windows (Any)|
This archive entry has one or more follow-up message(s) listed below.|
Source Message Contents
Subject: [Full-disclosure] Firefox: serious cookie stealing / same-domain|
There is a serious vulnerability in Mozilla Firefox, tested with 18.104.22.168,
but quite certainly affecting all recent versions.
The problem lies in how Firefox handles writes to the 'location.hostname'
DOM property. It is possible for a script to set it to values that would
not otherwise be accepted as a hostname when parsing a regular URL -
including a string containing \x00.
Doing this prompts a peculiar behavior: internally, DOM string variables
are not NUL-terminated, and as such, most of checks will consider
'evil.com\x00foo.example.com' to be a part of *.example.com domain. The
DNS resolver, however, and much of the remaining browser code, operates on
ASCIZ strings native to C/C++ instead, treating the aforementioned example
This makes it possible for evil.com to modify location.hostname as
described above, and have the resulting HTTP request still sent to
evil.com. Once the new page is loaded, the attacker will be able to set
cookies for *.example.com; he'll be also able to alter document.domain
accordingly, in order to bypass the same-origin policy for XMLHttpRequest
and cross-frame / cross-window data access.
A quick demonstration is available here:
If you want to confirm a successful exploitation, check Tools -> Options
-> Privacy -> Show Cookies... for coredump.cx after the test; for the demo
The impact is quite severe: malicious sites can manipulate authentication
cookies for third-party webpages, and, by the virtue of bypassing
same-origin policy, can possibly tamper with the way these sites are
displayed or how they work.
Full-Disclosure - We believe in it.
Hosted and sponsored by Secunia - http://secunia.com/