Want to read Slashdot from your mobile device? Point it at m.slashdot.org and keep reading!

 



Forgot your password?
typodupeerror
×
Security Programming Software Microsoft Technology IT

Word 2007 Flaws Are Features, Not Bugs 411

PetManimal writes "Mati Aharoni's discovery of three flaws in Word using a fuzzer (screenshots) has been discounted by Microsoft, which claims that the crashes and malformed Word documents are a feature of Word, not a bug. Microsoft's Security Response Center is also refusing to classify the flaws as security problems. According to Microsoft developer David LeBlanc, crashes aren't necessarily DoS situations: 'You may rightfully say that crashing is always bad, and having a server-class app background, I agree. Crashing means you made a mistake, bad programmer, no biscuit. However, crashing may be the lesser of the evils in many places. In the event that our apps crash, we have recovery mechanisms, ways to report the crash so we know what function had the problem, and so on. I really take issue with those who would characterize a client-side crash as a denial of service.' Computerworld's Frank Hayes responds to LeBlanc and questions Microsoft's logic.'"
This discussion has been archived. No new comments can be posted.

Word 2007 Flaws Are Features, Not Bugs

Comments Filter:
  • I didn't know that (Score:2, Interesting)

    by alberion ( 1086629 ) on Friday April 13, 2007 @02:49PM (#18722383)
    Windows is filled with these nice features too. Microsoft is sure to include them in every piece of software they release.
    Why spend on testing, when you got paying consumers to do the bug reports for you?
    It may be unethical, but they ARE getting richer by the minute.
  • It's officially 1984 (Score:3, Interesting)

    by Mateo_LeFou ( 859634 ) on Friday April 13, 2007 @02:51PM (#18722427) Homepage
    The spokesthing actually contends that the crashes are "a by-design behavior that improves security and stability"
  • by jojoba_oil ( 1071932 ) on Friday April 13, 2007 @02:51PM (#18722435)
    It seems to be a typical response from Microsoft.

    Another example I came across recently is here [microsoft.com]. What's the point of designing as such?
  • by Red Flayer ( 890720 ) on Friday April 13, 2007 @02:53PM (#18722473) Journal
    Say you have a known vulnerability in your code, which fixing would require rebuilding your app from scratch (or damn near close enough to make it too expensive to fix). Also say that you have the capability to detect an attempt to take advantage of the flaw before any damage is done, and that shutting down the app will prevent further damage.

    Wouldn't it be a good idea to shut down the app to prevent your whole network getting hosed? And doesn't the pain-in-the-assitude for the user maybe prevent them from opening shady docs the next time around?

    Admittedly, it would be best if the flaw never existed in the first place. But if fixing the flaw outright is out of the question, why isn't this a good solution?
  • Re:Let me see... (Score:5, Interesting)

    by Ckwop ( 707653 ) * on Friday April 13, 2007 @03:01PM (#18722633) Homepage

    owever, he has not yet found a way to exploit that overflow because Word keeps crashing. Microsoft says that the crash is preventing any security hazard, and therefore there is none.

    The Open BSD guys have a philosophy: "The only difference between a bug and a vulnerability is the intelligence of the attacker."

    I wish more programmers held this view! A bug is an undefined state of the program. It's quite clear that this is a dangerous position for your program to be in. Bug really are baby vulnerabilities. It's best to remove them as soon as you find them.

    Simon

  • Re:Let me see... (Score:5, Interesting)

    by kebes ( 861706 ) on Friday April 13, 2007 @03:03PM (#18722689) Journal
    I totally agree that calling this a security flaw or DoS is silly. Until it is actually used to exploit the program, it's not a confirmed security flaw.

    However using bad documents to crash Word is still a flaw in Word, in my opinion. The application should just say "Can't open bad/corrupted document" and let the user keep working. In the blog he says:

    The theory is that it is better to crash (at least with client apps) than it is to be running the bad guy's shell code.
    I understand the rationale, but I would argue it's rather sloppy programming that uses a crash as a means to prevent such bad things from happening. Exceptions can be thrown, but they should be caught and used to halt the "bad actions", and revert back to a normal program state.

    Obviously it is better to crash than to execute arbitrary enemy code. However it's better still to just refuse to execute arbitrary code, but otherwise keep running. The problem with using crashing as a security system is that then the "bad guys" will try to crash your application on purpose (calling it a DoS is a stretch, mind you), which opens up new security problems. (A crashing app may expose other security vulnerabilities, disclose otherwise protected information, destabilize other apps/the OS, etc.)
  • by stratjakt ( 596332 ) on Friday April 13, 2007 @03:14PM (#18722845) Journal
    Where a high (100%) level of consistency is absolutely required.

    Basically, the default behavior on any exception is to crash, and roll back any open transactions. There's just no way to recover from something unexpected, and still be able to guarantee that the next commit to the DB isn't going to fuck something up.

    I have described this behaviour as intentional, and have played it off as a feature - directly comparing it to a competitors product, which took an "ignore error, keep on truckin'" approach. They fired the first shot by finding a bug that made our app crash, and claimed the crashing meant it was buggy. Meanwhile, no crashes on their side means no bugs.

    So I showed how I could exploit a bug to start corrupting records, and even found a way to do it willfully (ie; change your parking ticket into a warrant for forced sodomy).

    Of course, we treat every crash as a bug - but the fact that it crashes (after writing out as much relevant info as possible into a .log file) is a feature in itself.
  • by Anonymous Coward on Friday April 13, 2007 @03:38PM (#18723209)
    I dont have time to log in but I have to point out that the biggest flaw in Office 07 is the office menu, when single clicked it drops a menu, when double clicked it kills the app...fucking redmond retards!
  • by PCM2 ( 4486 ) on Friday April 13, 2007 @03:40PM (#18723239) Homepage

    The old Apple ][ Reference Manual included a few pages of technical terms, with definitions. Buried among entries like track, sector, stack, and interrupt was this gem:

    feature n. A bug, as described by the marketing department.

  • by ady1 ( 873490 ) on Friday April 13, 2007 @03:42PM (#18723281)
    I agree with the complex software part. The tiny bit of problem is the Microsoft is charging quite a bit of money for the honor of being a beta tester.

    On a completely different note, I've vista installed on one of my PC and the explorer crashes quite often for a 499$ OS.

    My colleagues and friend ask me all the time if they should get vista and I tell them to not waste their time. Even one of my friend bought a laptop with vista preinstalled and he had to revert to XP right after because explorer crashed so often that made the working impossible.

    Is it just me or the quality of Microsoft Products is going down?
  • by anss123 ( 985305 ) on Friday April 13, 2007 @03:44PM (#18723327)
    Meh, it's only Word. Firefox goes down in flames every now and then, but it recovers at the spot it left off so no big deal. I guess the same thing is happening with Word. Annoying but no big deal.

    If you want a 'big deal' you should check out Words (XP and downwards) file handling bug. Now _that's_ brain-dead. Basically, every time you use the undo function Word opens a new file handler. Keep at it and the OS eventually runs out (especially a problem on the Mac) and you can't save your document or open any files.

    Oh, and what was MS's excuse for not fixing this bug sooner? The idiotic teck complained that his debugger crashed because it opened too many handles, so he couldn't fine the bug. Well DUH!
  • Re:explosive code? (Score:3, Interesting)

    by drinkypoo ( 153816 ) <drink@hyperlogos.org> on Friday April 13, 2007 @03:59PM (#18723549) Homepage Journal

    But isn't this the whole point of the exception-handling model of software error recovery?

    There's a reason we call it a crash (or an abend.) It's because we weren't expecting it. We're not talking about a demolition derby here.

    If an exception causes the program to quit safely, it's not a crash, it's an expected termination.

  • by qualidafial ( 967876 ) on Friday April 13, 2007 @04:12PM (#18723739) Homepage
    During the last EclipseCon, Hugh Thompson (of in-flight Tetris crashing [csoonline.com] fame) showed us a hack in notepad discovered using fuzz testing. Open up a fresh notepad and type in the words, "this app can break" (without the quotes). Then save the document to file, close notepad, and double-click the file you just saved to bring it back up in notepad. Everything will appear as squares. Not a major exploit, and definitely not a DoS, but kind of interesting.

    Apparently that specific line of text exploits the way that notepad determines whether the file is encoded in ASCII or Unicode.

  • Re:Let me see... (Score:5, Interesting)

    by misleb ( 129952 ) on Friday April 13, 2007 @04:20PM (#18723879)
    The point is that a malformed documented shouldn't throw a word processor into an unrecoverable state. That is a bug. I don't know whether or not it is a denial of service attack. That is debatable, but not properly handling an exception in a document is definitely a bug. A word processor can simply tell the user, "hey, this document is fucked, I can't open it." If it just crashes, the user could possibly lose data in other open documents. And that is a Bad Thing(tm).

    -matthew
  • Re:What (Score:4, Interesting)

    by hey! ( 33014 ) on Friday April 13, 2007 @04:48PM (#18724317) Homepage Journal
    Actually, in my opinion he's right.

    People act as if a crash is the worst thing in the world. Generations of programmers have been trained to think of a crash bug as the ultimate badge of shame. The problem is that it is not, by far, the ultimate mistake.

    I think it's useful to keep this in perspective. It's better that you crash the user's car than run over the user's baby. I always tell guys who work for to to place bugs in the following order of severity (1 is highest severity):

    1) user's system security is compromised.
    2) user's data is corrupted or lost.
    3) give wrong answers that aren't obvious (2 and three might be interchanged in some circumstances)
    4) crash bugs and obvious garbage output

    It's not that crash bugs are good. It's that given a choice between a crash and things higher on the list, you ought to choose the crash.

    This is not a choice that, once upon a time, we had to make. Crashes happen when a condition you hadn't anticipated happen, so they were not (as a rule) a matter of choice.

    Java checked exceptions changed that, and required that I develop clear priorities. For non-programmers, an exception is a condition (usually abnormal) that can occur some place in your program. A checked exception is one that it is mandatory to handle some place in your program, otherwise your program is not valid.

    I'm not religiously against checked exceptions, other than that they're a bad choice for default. The problem is that the places where exceptions occur are often not the right place to handle them. The temptation is to mishandle the exception, particularly exceptions that are rare, at a low level. Sometimes this is a temporary measure so you can get to some initial tests you want to do, and you never get back to undoing it. Sometimes it happens because the programmer doesn't know a good way to handle the exception, so he papers it over.

    The result is that you convert a crash bug into some other kind of bug. Often a bug that's higher on the severity list. That's why converting a checked exception into a non-checked exception is often the best course of action, even though it creates a possible crash condition later on.

    Automated testing does, or potentially can, stand in for the function of checked exceptions with less risk. Some kind of annotation that was integrated with unit testing might be ideal.

  • Re:Insightful?! (Score:1, Interesting)

    by Anonymous Coward on Friday April 13, 2007 @04:55PM (#18724395)
    "OSX is pretty but someone else with money can buy it."

    Really? I was looking for a small, fanless mini-itx box the other day for a special purpose. I found this [logicsupply.com] at $525 but still had to get memory, HD, and CD-ROM for it. I'm sure there is cheaper but hard to find the foot-print size.

    Then it dawned on me that a Mac Mini is that size. Quiet and with more CPU, a HD, memory and a CD/DVD for less money. But, yeah, the Macbook Pro and G5s are more expensive than a cheap, plastic PC.
  • by Anonymous Coward on Friday April 13, 2007 @05:08PM (#18724559)
    I know few will read this, since I'm an Anonymous Coward and all, but here's another one, this time for MS Word 2000:
    1) Start up Word
    2) Type "Dear Katrina," sans quotes
    3) Press Enter
    4) ???
    5) Voila! Profit! er, uh, I mean, CRASH!

    This crashed on two different installations of Word 2000 (on Windows XP and 98) but didn't on another.
  • by hxnwix ( 652290 ) on Friday April 13, 2007 @05:10PM (#18724595) Journal

    It's a bad document. Word crashes. Life goes on.
    You're right, you know. And you're not just right about word - this design paradigm clearly extends across the entire Microsoft product line, from the most basic to the most mission-critical:

    "If you understand computers, you know that a computer normally is immune to the character of the data it processes," he wrote in the June U.S. Naval Institute's Proceedings Magazine. "Your $2.95 calculator, for example, gives you a zero when you try to divide a number by zero, and does not stop executing the next set of instructions. It seems that the computers on the Yorktown were not designed to tolerate such a simple failure."

    Microsoft running a warship? What could possibly go wrong? Oh yeah - absolutely everything, since Microsoft can't be bothered to sanity check input [gcn.com].

    FYI, Microsoft screwed up here and it's difficult to defend them in this instance without coming off as a dunce yourself.
  • by Matt Perry ( 793115 ) <perry DOT matt54 AT yahoo DOT com> on Friday April 13, 2007 @05:17PM (#18724701)

    "Error: the operation completed successfully"
    I kid you not! This was common in Win98 and observed also in Win2k - if an app crashed, causing DrWatson to pop up and offer to save some kind of crash log, just click the save as button, and then cancel the save. Voila.
    I knew I saved this error message for a reason [imageshack.us]. Years ago some colleagues and I saw this error while installing some high-priced, fancy-pants software [niku.com] and just had to get a screenshot.
  • Re:Walk into a store (Score:3, Interesting)

    by Peaker ( 72084 ) <gnupeaker@nOSPAM.yahoo.com> on Friday April 13, 2007 @07:14PM (#18726301) Homepage

    1) You can't just type "office" anywhere in Linux and get the same same result either, you've got to type it a certian way and in specific places to get a list of apps to instal. In other words, you still have to go through steps. They might be different steps than you take in windows, but steps none the less. Don't front. And you know, if the google search field counts, you can do what you suggest on ANY OS that supports a browser.

    You have to type it in a specific text box - that of your package manager.
    And then, the various alternatives are 1 click away.
    That is never true in Windows, it is much more difficult and involves far more to find, download and install from the web. And far worse, it involves far worse trust in untraceable entities! My packages are signed by the maintainers who registered themselves and are trackable.

    2) Anyone who says (or implies) that you can't legally download software or updates using windows is just plain ignorant.

    I didn't say you couldn't legally download, I said you couldn't download the updates for your entire software repository (including not just Microsoft software, but also your games, your Instant Messangers, Photo editors, etc) from one central location, which remains true.

    3) You can't avoid burning fuel to bring those bits to your desktop, unless you've suddenly discovered a new way of powering the world that you also installed into every power generation station on the planet while no one was looking... We generate power by (in what, say 80% of cases) by using some sort of toxic fuel... Bits don't move themselves. Their carbon footprint might be smaller than your car's, but it's still there.

    Talk about nitpicking! Yes, some fuel is burnt (unless wind or solar power is powering those routers, ofcourse), but to compare that to the fuel burnt to power the car to and from the store to carry the bits is absurd.

An Ada exception is when a routine gets in trouble and says 'Beam me up, Scotty'.

Working...