Forgot your password?
typodupeerror
Internet Explorer Security The Internet

IE8's XSS Filter Exposes Sites To XSS Attacks 84

Posted by kdawson
from the first-do-no-harm dept.
Blue Taxes writes "The cross-site scripting filter that ships with Microsoft's Internet Explorer 8 browser can be abused by attackers to launch cross-site scripting attacks on websites and web pages that would otherwise be immune to this threat. The IE8 filter works by scanning outbound requests for strings that may be malicious. When such a string is detected, IE8 will dynamically generate a regular expression matching the outbound string. The browser then looks for the same pattern in responses from the server. If a match is made anywhere in the server's response, the browser assumes that a reflected XSS attack is being conducted and the browser will automatically alter the response so that the XSS attack cannot succeed. The researchers figured out a way to use IE8's altered response to conduct simple abuses and universal cross-site scripting attacks, which worked against sites that would not otherwise have been vulnerable to XSS." Here is the researchers' backgrounder (PDF) on the attack. Microsoft says that they have issued two patches that address the issue, but the researchers insist that holes remain.
Update: 04/20 14:06 GMT by KD : Microsoft's Security Response Center has issued a statement on the vulnerability.
This discussion has been archived. No new comments can be posted.

IE8's XSS Filter Exposes Sites To XSS Attacks

Comments Filter:
  • Good to know (Score:1, Insightful)

    by Anonymous Coward

    I have no idea what XSS does in IE8, like 99.9999% of those that use it.

    And the [?] help never has any help at all.

    • Re: (Score:3, Informative)

      When you go to a website, and it says "Welcome, Thomas!" because your referrer website sent them to their homepage with something like "http://www.website.com/?name=Thomas" these guys set up the referrer to send you to a page that says something like "http://www.website.com/?name=[malicious code]" and the site says "Welcome !" and congratulations on your new site-specific keylogger.
    • by Z00L00K (682162) on Tuesday April 20, 2010 @01:44AM (#31906780) Homepage

      As usually they have a disclaimer too:

      *This posting is provided "AS IS" with no warranties, and confers no rights*

    • by StuartHankins (1020819) on Tuesday April 20, 2010 @02:09AM (#31906922)

      An additional update to the IE XSS Filter is currently scheduled for release in June. This change will address a SCRIPT tag attack scenario described in the Blackhat EU presentation. This issue manifests when malicious script can “break out” from within a construct that is already within an existing script block. While the issue identified and addressed in MS10-002 was identified to exist on high-profile web sites, thus far real-world examples of the SCRIPT tag neutering attack scenario have been hard to come by.

      (emphasis mine)

      JUNE??? They are waiting until JUNE to "schedule the release" for this bugfix? And what is this "hard to come by", either they have found examples or they haven't. My guess is they have or they would have been quick to state "we have found no examples in the wild". And somehow, I don't know, maybe someone giving a presentation on the topic might signify that others know about this too and may be actively taking advantage of it now? Maybe a teensy chance of that?

      <sarcasm>Yes, folks, that's why you pay Microsoft all the big bucks. Their process seems to work so well... maybe they can work this into a regular Patch Tuesday so you don't have to reboot your servers / schedule an outage so many times that week.</sarcasm>

      This is fast-food software design, cheap and not particularly good for you. This is what you get when people have low expectations and are sensitive only to price -- how many patch Tuesdays so far this year didn't affect every version of IE, every version of Office and every recent version of Windows (and for most of these, require reboots)? It's way beyond sad and way past "whoops" when a major software manufacturer has this many bugfixes and problems with almost all of their software. Yes, software is complicated, but slow down and implement some quality control techniques for goodness' sake.

      This is just churning turds for profit, and we're stupid enough to eat them.

      • Re: (Score:2, Interesting)

        by gzipped_tar (1151931)

        April is the cruellest month, breeding
        Bugs out of the crap app, delaying
        Fixes and patches, stirring
        Angry geeks with slashdot dupe.

      • Re: (Score:3, Informative)

        Well maybe they've decided to actually test the patch before releasing it? :)

        I discovered today that a patch for a vulnerability [microsoft.com] in the IIS SMTP service causes the settings for the service to be reset [microsoft.com] if you're running it on Server 2008 (2003 doesn't seem to be affected, AFAIK).

        Unfortunately we applied that patch (and others) last Wednesday and don't have regular automated testing of our website's ability to deliver mail to localhost, so took a while for us to notice... a quick Google lead me to this discus [iis.net]

        • by grcumb (781340)

          I discovered today that a patch for a vulnerability [microsoft.com] in the IIS SMTP service causes the settings for the service to be reset [microsoft.com] if you're running it on Server 2008 (2003 doesn't seem to be affected, AFAIK).

          Well, there's your problem right there.

          Doesn't it strike you as peculiar when software becomes so integrated that changes to your web server end up borking your mail server?

          For all its shortcomings (and there are, admittedly, more than a few), the Unix toolkit approach at least

      • Re: (Score:2, Informative)

        by LinuxAndLube (1526389)
        I just read this: "Now when you look at Microsoft today they do more to secure their software than anyone. They're the model for how to do it. They're not perfect; there's room for improvement. But they are definitely doing more than anybody else in the industry, I would say." [ http://news.cnet.com/8301-27080_3-20002317-245.html?tag=rtcol;inTheNewsNow [cnet.com] ] I think most people in the know would agree with him.
      • by thornmaker (794873) on Tuesday April 20, 2010 @08:09AM (#31908320)
        The last sentence of the article's summary is completely wrong. I am one of the "original researchers" for this issue (p42.us is my website). The patches that have been issued by Microsoft up to this point are successful at eliminating the primary security vulnerability, to the best of our knowledge. The main security vulnerability described in our white paper was disclosed to Microsoft last fall and Microsoft fixed the issue in January 2010. The one case that has not been addressed by the filters is very rare and extremely unlikely to be found on a given websites.
        • Got no mod points today, but surely this deserves a few "+1 Informative"s?

        • Re: (Score:3, Interesting)

          by Culture20 (968837)

          The one case that has not been addressed by the filters is very rare and extremely unlikely to be found on a given websites.

          Between now and June 8th? That's seven weeks! Seems we're lucky that we're not waiting until June 14th this year.

      • by wvmarle (1070040)

        From such wording I would conclude that working exploits are out there.

        They may be hard to come by, but it can be done, and the fact they say "have been hard to come by" means that they got at least one (have been being a past tense). And no matter how hard a flaw is to exploit, as soon as a single exploit exists, the rest of the attackers can in principle just re-use it. If script-kiddies can do that, then more serious attackers surely can.

        • by Svartalf (2997)

          If script-kiddies can do that, then more serious attackers surely can.

          ...and will. Cheap shots are always preferred over the more sophisticated attacks because they often require less effort on the part of the attacker for the gain they seek- whatever it might be.

          Security is as much a philosophy as it is tech. More to the point, as much as locks and the sort are meant to keep honest people that way- what Microsoft often peddles as "security" is the security of a cheap combination lock rather than the vau

      • by mcgrew (92797) *

        This is fast-food software design, cheap and not particularly good for you.

        That's an apt metaphor, except of course that Microsoft charges five star restaraunt prices for its Big Macs.

        This is what you get when people have low expectations and are sensitive only to price

        If one was sensitive to price they wouldn't use Microsoft. See, they've convinced people that the Big Mac is five star quality food.

        slow down and implement some quality control techniques for goodness' sake

        Dream on. To quote Lillly Tomlin's

  • by Anonymous Coward on Tuesday April 20, 2010 @01:41AM (#31906760)

    stick to IE6. Long live Internet Explorer 6!

    • by julesh (229690) on Tuesday April 20, 2010 @04:13AM (#31907360)

      stick to IE6. Long live Internet Explorer 6!

      Why stick with 6? I'm using IE3. When was the last time you heard of an IE3 exploit being released? I'm considering a switch to Netscape Navigator 1.1, just in case.

      • Internet Explorer 3? I'm not sure how to go from IE6 to IE3 while using Windows XP. But, I think I was able to install Netscape version 1, or maybe it was like version 4. However, I don't think YouTube worked when I did that.

        The 1990s was a great decade. Let's go retro! Bring back Clippit!

  • Really old news! (Score:1, Informative)

    by Anonymous Coward
  • What about if someone simply made a Firefox addon that emulated this broken IE behaviour?

    Would that not simply mean the sites were simply insecure as opposed to Internet Explorer somehow being responsible?

    • Re: (Score:3, Insightful)

      by gzipped_tar (1151931)

      You hired a guard and he raped your daughter. Now your neighbor also has a daughter and he hired another guard. Somehow, that guard decided to emulate the broken behavior of your guard as well.

      Would that not simply mean that those who were born daughters were simply inviting rapists as opposed to rapists somehow being responsible?

      If you can't understand the above analogy, here's a Car Analogy for you.

      You drove a Toyota on the road and killed a pedestrian due to negligence. Someone else driving a Ford emulat

    • by KiloByte (825081)

      The IE you were using made an explicit man-at-the-end attack against a properly coded website. Your session was secure until your browser decided to break it.

      • by sjames (1099)

        It's just a confusing headline. It's the user that is exposed to the XSS attack, not the site.

    • I don't see why (Score:5, Insightful)

      by Moraelin (679338) on Tuesday April 20, 2010 @05:52AM (#31907784) Journal

      Honestly, I usually am the first to lay the blame on developers for doing half-arsed jobs, but in this case... really, why would I blame a site for a modification a third party plugin does to their HTML code? As per the specs, their code is secure. Then someone comes and changes it to something insecure. Why would you hold the former responsible for something done by the latter.

      I mean, let's say you write some program, and check your array bounds and everything. Then a year later I'm brought in as a consultant and, perhaps in the name of optimizing speed, inadvertently bypass one of your checks and introduce a buffer overflow vulnerability. Would you say that you should be held responsible for my changes? Would you say your code was simply insecure if it allowed that? Why? By what definition of "insecure"?

      Plus, I always believed that responsibility should also come with enough power to do what you're responsible for. E.g., if you're responsible that a project finishes on time, then you should also have the power and budget to make sure it does. Responsibility without any power is IMHO just a name for "scapegoat."

      In this case, the IE code and its modifications are completely outside the web designer's control. If Microsoft introduces a new vulnerability next month, which turns a whole other chunk of perfectly good web programming into an XSS exploit vector, the web designer can't do anything to prevent them. It's exactly that scapegoat scenario. You're proposing to hold someone responsible for something they can't prevent or even influence at all.

      Plus, it's not like MS's code is public domain or even has an open and detailed specification. You can work around Javascript or HTML problems because you can know exactly what they are, what that code does, what does it output for a given input, etc. (Well, that is, if the browsers actually implemented the specs;)) In this case to work around MS's bug du jour, someone has to keep basically reverse-engineering whatever idiocy MS implemented this time. It seems to me like an undue burden.

      Plus, honestly, writing stuff that only works because of a bug in another module (in this case the browser) is bad practice. Now I'm aware that it can't always be avoided. But at least in an ideal world, it should be MS's job to fix MS's bugs, not the devs job to work around it. The devs job should be to write stuff that is correct and secure by the Javascript/HTML/whatever standards, not code that works with the IE bug of the day.

      • by Culture20 (968837)

        I mean, let's say you write some program, and check your array bounds and everything. Then a year later I'm brought in as a consultant and, perhaps in the name of optimizing speed, inadvertently bypass one of your checks and introduce a buffer overflow vulnerability. Would you say that you should be held responsible for my changes? Would you say your code was simply insecure if it allowed that? Why? By what definition of "insecure"?

        Failure to implement Core Wars code in the spreadsheet program. If the program were more like a rootkit, your memory-meddling to introduce a buffer overflow would be countered, your bank account would be drained, and your toaster would now be an acoustic spy device relaying sound over the electrical grid... whether or not it is plugged in!

    • by clone53421 (1310749) on Tuesday April 20, 2010 @09:24AM (#31908992) Journal

      No.

      The sites were previously not susceptible to cross-site scripting. They escaped their input, whatever needed to be done.

      IE cleverly tried to prevent cross-site scripting and in the process they screwed up the properly-escaped response so that now, you can execute a xss attack that didn’t even exist until IE8 changed it.

      This is how.

      If I enter “<img src=x:x onerror=alert(document.cookie);><script” in a username field, the next page that says “Hi, $name” should not result in a script alert. And if the page also sends the username as a Javascript string, the (PROPERLY ESCAPED) response might look like this:

      <script type="text/javascript">
      var username = "<img src=x:x onerror=alert(document.cookie);><script";
      </script>
      Hi, &lt;img src=x:x onerror=alert(document.cookie);&gt;&lt;script

      Note that the site properly escaped the angle brackets when it was presented as HTML, and there were no illegal characters that needed escaping in Javascript.

      IE8 will detect your “<script” in the input and replace all instances of <script with “<sc#ipt” in the resulting page. (No, I’m not making this up. That is what the researchers claim.) Which, naturally, kills most of the Javascript functionality in the resulting page. But more importantly, it does this:

      <sc#ipt type="text/javascript">
      var username = "<img src=x:x onerror=alert(document.cookie);><sc#ipt";
      </script>
      Hi, &lt;img src=x:x onerror=alert(document.cookie);&gt;&lt;script

      ...which looks like this, when the browser renders it:

      var username = "[broken image bitmap] Hi, <img src=x:x onerror=alert(document.cookie);><script

      AND THE INJECTED SCRIPT EXECUTES.

      Now you just replace the alert() with some Ajax code to send the stolen cookies to your server, craft a URL containing the malicious code in a GET query, and go phishing.

      • by sjames (1099)

        The key point though is that it is not the site that has been hacked, it's the person using the browser. The site is blameless and unharmed.

        • Re: (Score:3, Informative)

          by clone53421 (1310749)

          Actually, no. The site sent code that was executed by the browser to a malicious result. Normally in such a situation you’d blame the site, and rightly so.

          The blame goes on IE in this one, though, for breaking correct code generated by the site and turning it into something incorrect (and malicious).

          • by sjames (1099)

            I WAS talking about this case. In other cases where the site sends incorrect code that causes a problem, the site is unharmed but not blameless.

            Even in the latter case, the browser must share the blame unless the user has marked the site as trusted. That is for the same reason that the site is blamed if it permits an SQL injection attack to work. Unless told otherwise, the browser should not presume that any site is trusted by the user nor that any site trusts any other site. A site MAY (and should be able

  • Not my site... (Score:1, Interesting)

    by Anonymous Coward

    Not if IE8 wanders over to my site. Any version of IE gets a header redirect straight to the eu browser choice web site.
    It will remain so indefinitely unless (Which I doubt) IE9 becomes ECMA javascript compliant and w3c standards compliant. Neither of which any existing single version of Internet explorer is.
    I made the decision as a result of the IE attacks on Google and IE's failure to correctly render the site's w3c validated css and xml template correctly.
    I haven't found any other major browser that can'

  • . . . you can't fix it in the implementation. They have sent themselves down this path and are too far to turn back. Their only hope is to make it too proprietary for anyone outside Microsoft to understand. IE9 must use the IRS tax code interface, which will render it indecypherable and, therefore, unusable.
  • Oh the horrors! (Score:5, Insightful)

    by Hurricane78 (562437) <.gro.todhsals. .ta. .deteled.> on Tuesday April 20, 2010 @02:26AM (#31906988)

    will dynamically generate a regular expression matching the outbound string

    RegEx? Dynamic? Generated?? I don’t think I’m the only one who got the chills and raising hackles from this...
    I think this deserves an award for the most made-for-disaster concept even conceived. ^^

    • Re: (Score:2, Interesting)

      The only thing crazier than a dynamically generated regex is running a proprietary browser on top of a proprietary operating system.
    • BTW, be sure to check the PDF (link in summary). The paper was well written, and the documented bug was totally fucking ridiculous. I'd say that the whole thing was made-for-disaster.

  • $browser=isitie(); if $browser then ieisbrokepage() else [...]

  • This demonstrated the point that apparently is lost on the majority of people who are in various ways are responding to various "threats":

    In the overwhelming majority of cases the best response to the possibility of attack is TO DO NOTHING.
    In a large subset of those, fixing underlying problem is the best direction of efforts, security-related or otherwise.

    It's simple -- when you (be it a person, organization or a piece of software) respond to something in a predictable manner your actions are controlled by

  • If a site is capable of executing user submitted content it's hardly immune from attacks.
    • by julesh (229690)

      If a site is capable of executing user submitted content it's hardly immune from attacks.

      It isn't. RTFA. Internet Explorer looks at the returned data, and takes a guess that it is. The action IE takes in response to this causes it to become capable of executing the content (by introducing new bugs into javascript code that already existed on the page).

    • The site wasn’t capable, and was in fact immune.

      Until IE fsked its scripts and turned all of its Javascript code into HTML because it detected a possible XSS attack.

      IE is a liability and should be killed.

    • by sjames (1099)

      Unless the SITE (that is, the server) is the one executing the code, then the attacks are against the client and it is up to the client to fix them, in this case, IE.

      SQL injection is a good example of an attack against a site, and vulnerability to that is a site vulnerability.

  • ... the browser will automatically alter the response ...

    This smacks of the thinking behind PHP's magic quotes [wikipedia.org].

    Microsoft's so-called security experts should have known that this was a bad idea, especially if they'd worked with the UTF-7 XSS vulnerabilities. Any time you take a parsed language and haphazardly change the way that it parses, you're opening the door to security holes. That's probably why Dan Bernstein, years ago, said "Don't parse" in his page about qmail security [cr.yp.to].

1 Billion dollars of budget deficit = 1 Gramm-Rudman

Working...