Stories
Slash Boxes
Comments

News for nerds, stuff that matters

Slashdot Log In

Log In

Create Account  |  Retrieve Password

HTML Rendering Crashes IE

Posted by michael on Sat May 03, 2003 02:42 AM
from the tough-job dept.
SlimySlimy writes "According to this article on Secunia, a new IE exploit was found that crashes almost any version of Internet Explorer past 4.0 with just 5 lines of plain HTML code (no JavaScript, ActiveX, etc.). If you're very brave, you can test/crash your IE by going here." There's also a note on SecurityFocus.
+ -
story
This discussion has been archived. No new comments can be posted.
The Fine Print: The following comments are owned by whoever posted them. We are not responsible for them in any way.
 Full
 Abbreviated
 Hidden
More
Loading... please wait.
  • by A nonymous Coward (7548) * on Saturday May 03 2003, @02:46AM (#5867850)
    Here is their story [theinquirer.net]
      • by Selanit (192811) on Saturday May 03 2003, @04:20AM (#5868097)
        I just crashed my copy of IE (5.00.2614.3500) with no more than <input type crash>.

        And anyway, even if your version requires more than that, it can still be all on one line, eg:

        <html><form><input type crash></form></html>

        Since carriage return/line feed pairs are totally unimportant in HTML (except with the <pre> tag, and maybe one or two others), it's silly to talk about how many "lines" it takes anyway.
  • by ShieldW0lf (601553) on Saturday May 03 2003, @02:46AM (#5867852) Journal
    Could wreak havoc in html-enabled forums
  • by WiseWeasel (92224) on Saturday May 03 2003, @02:47AM (#5867853)
    It seems that IE 5.x on MacOS X is not affected by this. Not that it's such a big deal, I imagine any affected Windows versions of IE can be relaunched and people will just avoid going to places with such code. I fail to see the significance. Oh well, glad to see their Mac port is more stable in this regard.
    • Very big deal (Score:5, Informative)

      by fm6 (162816) on Saturday May 03 2003, @03:17AM (#5867982) Homepage Journal
      The IE HTML renderer is actually in a DLL that's shared by several application. And yes, they crash too. It's sort of interesting that that this DLL has no MacOS equivalent. Or perhaps there is an MacOS equivalent, but the usual low-level kludges are different on Mac and Windows.

      Why is this a big deal? Because the largest software company on the planet has no better development practices and safeguards than some half-literate garage hacker.

    • by Anonymous Coward on Saturday May 03 2003, @04:17AM (#5868091)
      It seems that IE 5.x on MacOS X is not affected by this.

      I've had it. I'm switching.
    • I fail to see the significance.

      I see the significance in two ways right now:

      1. No matter what the input stream, the application should not respond by crashing.
      2. If the entire application crashes and the user had something valuable in another window, that data loss could be a big deal. As we become more dependant on web browsing ordinary users type more valuable data into browsers, often without thinking about the need for making backups by entering data in some other place and copying it into the browser.
    • Not that it's such a big deal, I imagine any affected Windows versions of IE can be relaunched and people will just avoid going to places with such code.

      I should have included the following in my first response to your rather overrated and glib point above: Users won't know where to avoid going until it is too late.

    • by jmauro (32523) on Saturday May 03 2003, @07:29AM (#5868395) Homepage
      IE's rendering engine on the Mac is completely different than the rendering engine on Windows. The MS Mac team did a great job re-implementing the entire engine. Now if they'd only port Mac IE to Windows I'd be happy.
      • by b1t r0t (216468) on Saturday May 03 2003, @08:03AM (#5868464)
        Even if exactly the same code was used, it still wouldn't crash on the Mac. Why? RTFL, people. It's a null-dereference bug. That means something tried to access memory location zero. Apparently under Winderz, location zero is not mapped to anything and causes a crash from an invalid memory access.

        Under Mac OS 9 and earlier, memory location zero was explicitly a real memory location. I wouldn't be surprised if null accesses under OS X also don't cause a crash. So this bug wouldn't cause a crash on a Mac, period.

        It's really amazing how many people posting here have stupid conspiracy theories about this, like how it's an intentional mis-feature to test crashing the browser, and how they think the word after 'type' means anything. Look folks, the problem is that 'type' is naked, when it should be 'type="TEXT"' or something similar.

  • mozilla crashes too (Score:5, Informative)

    by Anonymous Coward on Saturday May 03 2003, @02:47AM (#5867858)
    I use galeon most of the time and it crashes often too... Just put this in a document

    <body onblur="javascript:self.focus()">

    browse it, and galeon will crash (as of 1.3.3.20030419). Do the same in mozilla, close the browser window, and it will segfault (version 1.3).
    • by arvindn (542080) on Saturday May 03 2003, @04:22AM (#5868106) Homepage Journal
      Even simpler:

      <script> for(;;){window.open('');} </script>

      Just tried with mozilla 1.2.1: froze.

      OTOH:

      <script> for(;;){} </script>

      If I do this a dialog pops up saying: "A script on this page is trying to screw you. Do you want to kill it?" (not in those words though :)

      • by metalpet (557056) on Saturday May 03 2003, @05:22AM (#5868202) Journal
        That's actuallly a good point.
        Everybody who has spent any time developing web pages has learnt that bad (and sometimes even good) html can crash browsers.

        Are we *that* confident in the maturity of our web browsers that causing a browser crash is nowadays considered a serious issue?

        Before jumping the gun on parsing errors that kill the app, it might be smart to go over design errors first (scripts that keeps on going and that bypass the simple "lengthy script" checks are a good example. recursive frameset tricks would qualify too.). I've yet to see a full-featured browser that doesn't choke and/or die when presented with the right mix of recursion, active content and wickedness.

        <tidbit type=outdated>
        Netscape 3 had a neat crash code:
        <script>delete new Location</script>
        The neat part about it is that 2 of those 3 words were undocumented.
        Of course any attempt to pass that as a security concern back then would have been laughed at. loudly.
        I'm not sure what has fundamentally changed since then.
        </tidbit>
        • by JimDabell (42870) on Saturday May 03 2003, @05:57AM (#5868249) Homepage

          Everybody who has spent any time developing web pages has learnt that bad (and sometimes even good) html can crash browsers.

          I can't think of a browser released in the past couple of years that *crashes* on bad HTML, except for this particular issue. Misrenders, yes, but crashes, no. Bad javascript is another issue; you can protect yourself from that quite easily, and most of the time the browser catches infinite loops, fork bomb-style attacks, etc anyway.

          <tidbit type=outdated>
          Netscape 3 had a neat crash code:
          <script>delete new Location</script> The neat part about it is that 2 of those 3 words were undocumented.
          Of course any attempt to pass that as a security concern back then would have been laughed at. loudly.
          I'm not sure what has fundamentally changed since then.
          </tidbit>

          IE has become a standard part of the Windows OS. As more and more applications use it, the impact of crashing greatly increases.

      • Bugs, crashes (Score:5, Insightful)

        by fm6 (162816) on Saturday May 03 2003, @05:09AM (#5868183) Homepage Journal
        HTML clients are supposed to do skip over input they can't render. And in general, software should do something reasonable when it can't deal with input. Like deliver an error message. Crashing is always evidence of a bug, whether the data that caused it is buggy or not.
  • You can download the patch to this bug here: www.mozilla.org [mozilla.org]

    Please note that this is a pretty bloated patch, but well worth it. ;)

    • by gad_zuki! (70830) * on Saturday May 03 2003, @04:11AM (#5868078)
      I just installed this bloated patch and it has caused nothing but problems:

      1. All of my x10 ads are missing. I would like to remain up to date on the advances in wireless webcam technology and x10's implied use on spying on girls without their consent.

      2. There is a *major* bug that hides webpages behind other webpages. I found a half-ass fix for now: click on the "tabs" at the top.

      3. This patch broke both Comet Cursor and Hotbar. Worse, they're not auto-installing when I visit certain webpages or when I click on my co-workers "Upgrade Outlook for colors and background" emails.

      4. My script debugging isn't working anymore. Sure, I have no idea what all that techno-babble means, but I know its broken!

      5. Where the heck is msn.com now?
  • bah (Score:5, Interesting)

    by chadamir (665725) on Saturday May 03 2003, @02:55AM (#5867899) Homepage
    people are up in arms over this because it's an ms blunder. It does nothing more than simply halt your browser. As many can testify, halted browsers happen with any of the many browser flavors available.

    I heard someone suggest they hire better testers? How was anyone supposed to test for this. I know this is /. and trolling about MS is ok, but I mean come on, how could anyone see that coming.

    The fact remains though that this crash isn't really that big of a deal. Sure it crashes IE, but it's not like most content webpages want their reader's browsers crashing when they reach the page. Who do we have to worry about? HTML enabled web boards? I have to worry about someone linking c:\con\con as an image everytime I click a link. You just go on with your life. If they are stupid enough to have html enabled then it's their problem, not MS's.
    • Re:bah (Score:5, Insightful)

      by gerardrj (207690) on Saturday May 03 2003, @03:09AM (#5867953) Journal
      People are up in arms over this because Bill Gates made it priority one in the company to make their software more secure and more reliable. This is just another blatent example of how they are failing in that mission. (This and the almost daily security updates).
      Here we have a simple bug that should be a test case. The word "crash" is not required, just that the type directive has a null value since it is not followed by an equal sign.
      The code would not hang the browser. The code would crash it just the same as it is again missing the equal sign. It's completely concievable that a developer that hand codes HTML would accidentally omit the character.

      This is simple buffer underflow checking: "does the thing I just recieved have the minimum expected size/value?" and just like all the buffer overflow issues, they don't bother checking the untrusted input before sending it off for critical processing.
  • why it crashes (Score:5, Informative)

    by mejh (564536) on Saturday May 03 2003, @02:57AM (#5867902)
    Just one line is really required:

    According to a post on bugtraq:
    IE tries to compare the type of the input field to "HIDDEN", to see if it
    should be rendered. When there is no type string, a null-pointer is used.
    mshtml.dll calls shlwapi.dll#158 @ 0x636f0037 with a pointer to a static
    unicode string "HIDDEN" and a null-pointer.
    shlwapi.dll#158 does a case-insensitive comparison of two unicode strings:
    it reads from address 0x0 because of the null-pointer and thus causes an
    exception.
    This is not exploitable, other then a DoS because there is no memory mapped
    @ 0x0 and even if you could load something there, you could only compare it
    to "HIDDEN" which gets you nowhere.
  • by [PF] Lurch (47956) on Saturday May 03 2003, @02:58AM (#5867906) Journal
    Ran into this while doing some website design, simplified the problem down to this. Note, the green background is just so you can see the cell a little better.



    <html>
    <head>
    <style>
    .header
    {
    position: fixed;
    background-color: green;
    }
    </style>
    </head>

    <body>
    <table border=1>
    <tr>
    <td class="header">sdf</td><td>sdfsdfsdf</td>
    </tr>
    </body>
    </html>

    You have to mouseover the table cells and you will get a gpf. Should work on IE 5.5 and 6.0.

    note: there is a bogus semicolon after the /td when I preview this post... it shouldn't be there, but I can't get rid of it.

  • Actually only one line of HTML is required:
    <input type>
    As someone on BugTraq already figured out 10 days ago, it's caused due to a null value for the type attribute [securityfocus.com].
  • by westyvw (653833) on Saturday May 03 2003, @03:02AM (#5867928)
    I have looked all over my computer for this IE thingy you all speak of. I cant find it anywhere. I typed "whereis ie" in the console but nothing turned up. I typed find / -name IE and again nothing. I looked for a man page found none. I clicked on the gear icon thing and looked though the programs installed I dont have it. So I typed apt-get IE. No luck. Must be some obscure piece of software that I cant find. Guess I am better of WITHOUT IT!
  • by jkitchel (615599) <jacob_kitchelNO@SPAMhotmail.com> on Saturday May 03 2003, @03:10AM (#5867959)

    Who else couldn't resist from clicking on the link that would crash IE?
  • by coloth (630330) on Saturday May 03 2003, @03:32AM (#5868011)
    I've crashed IE 6 several times with this HTML just fooling around, and each time, an exception is raised, a debug report generated, an optional offer is made to submit the report to the OS manufacturer to inform them of the problem, upon which immediate technical support is often given. After that action is complete, the OS remains stable, and the crash can be repeated ad nauseum, experimenting with different tags/debugger experiments/versions.

    That is in a consumer OS (XP Home) that costs less than $100, and has tens of thousands of commercial apps available in almost every language. (probably millions if you include shareware/freeware)

    Whether it's my mom or another engineer, I feel pretty good about telling them XP is a solid OS that can do what they need. (likewise with IE)

    Not many years ago, it would have seemed pretty petty to obsess about such a bug--and that's when it would've forced a reboot.

    I'm not shy about criticizing MS when appropriate, but to come from Windows for Workgroups to XP in 10 years is pretty impressive, especially for a company of its size.

    If it were me, I'd spend my time debating the Software Formerly Known As Palladium, and not lose the forest for the trees by mocking MS for this kind of item. I fart bugs bigger than this.

  • by weave (48069) on Saturday May 03 2003, @03:57AM (#5868054) Journal
    I want to see some simple HTML code that will crash a spammer's email harvesting web crawler. Now THAT would be "News.*that matters..."
  • by ArcticCelt (660351) on Saturday May 03 2003, @04:06AM (#5868068)
    "This HTML also crash Outlook" Sweet, I just found what to auto answer to all my spam. Of course with a subject line that says: I am very interested to buy your products.
  • Not THAT serious... (Score:5, Informative)

    by KAMiKAZOW (455500) <kamikazow@hotmail.com> on Saturday May 03 2003, @04:54AM (#5868163)
    I made some experiments and this bug is not that serious, if you use IE correctly.
    IE has a feature, Mozilla/Firebird and Opera sadly don't have: IE can run in multiple processes.
    If you open a new window by clicking IExplore.exe instead of pressing Ctrl-N, the new window runs in a seperate process. If you visit that crash page, only the one IE process crashes while the other processes stay unaffected (at least on NT based systems).

    OTOH if a page makes Mozilla crash, the whole app suite goes down. The process seperation with Firebird and Thunderbird is a step into the right direction, but different Firebird windows do still run in a single thread.
    I hope those kind of crashes send a message to all app developers (*cough*OpenOffice.org*cough*), to use multiple processes if possible (at least optional, because that would use more RAM).
  • by Christian Schladetsc (645031) on Saturday May 03 2003, @05:01AM (#5868171) Journal
    // html_parser.cpp,v (C) 1990- Microsoft #include "html/parser.h" template void html_block(II F, II L) { for (; F != L; ++F) if (tag(*F)()) for (++F; F != L; ++F) if (tag(*F)::Type::val == Type::Crash) __asm int 3; } OK, they didnt use meta-programming C++ techniques, but there's code similiar to that in the IE source. This HTML rudely crashes IE: I didnt make that up. That's the actual contents of the html code that when processed by the HTML parser in IE crashes it. Its safe to look at here, because its not being processed by the parser - its being processed by the text renderer, which just draws text. Read it. Its not hard to understand, even if you've never seen HTML source before. The phrase "input type crash" demonstrates a clear intention, to, um, crash. It was included by the programmers for a number of very good reasons. I dont really care to list them all here. But this is clearly not a "bug". Actually, it shows good engineering practise. Microsoft rox0r. No, really, they do.
  • Wait a minute. (Score:5, Informative)

    by blanks (108019) on Saturday May 03 2003, @05:28AM (#5868209) Homepage Journal
    This makes it on to slashdot, but bugs like this Netscape exploit [sina.com] didn't?
  • I mean, IE implements the <input type crash> tags correctly and you all just noticed? Yet again we see that Microsoft IE is ahead of the game, implementing useful tags that the w3 hasn't even thought of yet.

    Why is it that Microsoft is saddled with the burden of creating useful standards? Isn't this supposed to be the job of the w3?

    I expect we'll have to wait a few years to see it in Moz and by then, microsoft will have implemented <input type explode into tiny pieces> or something even more spectacular.
  • I got a fix... (Score:5, Informative)

    by miketang16 (585602) on Saturday May 03 2003, @08:34AM (#5868520) Journal
    http://www.w3c.org [w3c.org]

    nuff said.
  • by Anonymous Coward on Saturday May 03 2003, @08:54AM (#5868560)
    I just sent a HTML email with this in to a friend who runs Outlook 2000. As soon as he got it, it crashed Outlook. Funny thing is every time he starts Outlook up it crashes again so he can't rmeove it. Disables his email program with one crafted email!
    • Re:Phoenix (Score:5, Interesting)

      by thesadjester (87558) on Saturday May 03 2003, @02:49AM (#5867866)
      Well, just to note, the Mac OS X version of IE did NOT crash. However, anyone using IE on mac when Camino, Mozilla, and Safari are well put together should have their head examined. Don't forget Opera too.

      The bug seems to be Windows only....so the Mac coders at MS may be better coders...who knows.
    • Re:Phoenix (Score:5, Informative)

      by bockman (104837) on Saturday May 03 2003, @03:25AM (#5867995)
      Well, phoenix (0.5) crashes on my machine (Debian) in many ways, often downloading stuff. A couple of times, in not yet determined situations, it started to eat all memory, making the kernel to swap furiously until I killed phoenix threads.

      Nothing wrong with that, Phoenix being still an alpha product. But please do not compare it with mature products, even if they are from Microsoft.

      Also I don't understand why there are so many threads when nothing is going on (no download in progress and a single page shown).

    • by Taco Cowboy (5327) on Saturday May 03 2003, @03:44AM (#5868030)


      Tested with the Opera and Mozilla browsers, both on Windoze and Linux platforms, the exploit [vibrantlogic.com] doesn't affect any of them.


      IE on the other hand, crashed.


      By the way, here is the entire "exploit code":


      <html>
      <form>
      <input type crash>
      </form>
      </html>







      • by spectral (158121) on Saturday May 03 2003, @04:41AM (#5868139)
        And the funny part is, you only need the input line. So therefore putting something like this on your page: <a href="about:<input type die>">Click here</a> to crash IE. will also work. Though it kind of gives it away how it works if you look at the status bar. Too bad /.'s filter won't let me post that link properly. Bleh. :)
    • by drunk_as_in_beer (661124) on Saturday May 03 2003, @09:09AM (#5868599)
      I repeat, it did not crash Lynx.
    • Re:So.... (Score:5, Insightful)

      by zook (34771) on Saturday May 03 2003, @03:43AM (#5868027)
      First: I agree.

      Second: It's simple. It's cute. It's the kind of bug that makes a dev go, "Doh!", and so it's not absurd to show some interest in it. It's also a fun game to try to pin down what the problem is.

      Third: Does it warrant a /. story? Have you seen half the stories that come through here? ;)

    • by Isofarro (193427) on Saturday May 03 2003, @06:06AM (#5868264) Homepage
      This is a *SPLENDID* way to keep internet exploder (l)users away from webpages.


      Careful - we shouldn't stoop to invalid and non-standard HTML as a means of highlighting abusive and non-standards compliant browsers. So before implementing this, think about validity.

      Obviously, if we wrap this syntax up in a comment, it will be valid HTML. Now, considering Microsoft are stupid enough to implement conditional comments in Internet Explorer [microsoft.com], we can wrap things up very nicely:
      <!--[if IE]><input type crash><![endif]-->
      There you go - something which is a valid comment, but MSIE decides to think its something else - like conditional markup.