Aspect9: Internet Explorer 8.0 Beta 2 Anti-XSS Filter Vulnerabilities Release Date: December 11, 2008 Date Reported: October 5, 2008 Severity: Medium-High (Execute scripts, Turning Protection Off, Transfer data Cross Domains) Vendor: Microsoft Systems Affected: Windows Platform with Internet Explorer 8.0 Beta 2 Overview: Aspect9 has discovered several vulnerabilities in Microsoft Windows Internet Explorer 8.0 Beta 2. This new version of Microsoft's famous browser includes new security improvements such as a Cross Site Scripting (XSS) filter. This version also includes a new object that safely allows transferring data across domains, allowing them to interact with each other. The Anti-XSS filter has been found to have some security holes in the current implementation. Microsoft decided to filter "Type 1 XSS" which is free text send to the server being reflected to the user and therefore injecting HTML code into the website's page. They chose not to handle certain situations such as injection into a JavaScript tag space, which would be extremely difficult to filter. The software giant also chose not to filter injection into HTTP headers, which will drive hackers to focus on discovering CRLF vulnerabilities. A quote of Microsoft's Anti-XSS filter design philosophy: <<< "Like all security mitigation and protection technologies, the XSS Filter's approach does have limitations, being that it is a pragmatic balance between application compatibility, security, and performance. Some examples: * Injection into some contexts is not blocked. Ex: Scenarios where content can be injected directly into JavaScript without breaking out of a string. * Injections facilitated by some HTTP headers are not currently blocked. Ex: "Referer" based injection. * If a page contains multiple nearby injection points, attacks can be constructed that thwart the XSS Filter." >>> For more information about the Anti-XSS filter: http://blogs.msdn.com/dross/archive/2008/07/03/ie8-xss-filter-design- philosophy-in-depth.aspx In order to understand the contents of this advisory, the reader must be familiar with the concept of CRLF which is distinguished from CRSF. http://www.owasp.org/index.php/CRLF_Injection http://www.owasp.org/index.php/CSRF Technical Details: Bypass using CRLF+Encodings: --------------------------------------------- Microsoft Windows Internet Explorer 8.0 Beta 2 was designed to stop "Type 1 XSS" attacks. CRLF Injection is also XSS type 1 and is not mitigated by the filter, though the data in the query string will still be filtered. This means that if an attacker tries to exploit a CRLF for XSS in the casual manner, used in this demo: http://www.linkstofiles.com/crlf.py?url=cookie1%3dvalue1;%0D%0A%0D%0A
His attack will fail as "