Slashdot Mirror


WMF Flaw not a Backdoor

koro666 writes "In a blog post, Mark Russinovich from SysInternals responded to the allegations made by Steve Gibson labeling the flaw as an intentional backdoor. It seems that the hype was about Steve's discovery that the code would only be executed if the size of the metafile record was deliberately tampered with, which is not the case. The technical details are explained in his post."

226 comments

  1. it doesn't matter by heatdeath · · Score: 2, Funny

    Conspiracy theories don't need reasons backing them up. I still think that microsoft eats babies.

    --
    I'm sorry. The number you have reached is imaginary. Please rotate your phone 90 degrees and try again.
    1. Re:it doesn't matter by vdboor · · Score: 5, Informative

      Conspiracy theories don't need reasons backing them up

      You've got a good point here and it describes the other side of of Steve Gibson. After reading that site, you'll understand his stories are mostly made of popular speak or disinformation, rather then scientifical information.

      So while you may admire him for his charisma, you shouldn't for his expertise. Would you e-mail him about an error, he'll silently correct it as if he'd always known it. You won't find him at an official security conference, but in the eyes of his fanbase he remains a god. I can image people are felling for his stories through, his stories make you get excited easily.

      --
      The best way to accelerate a windows server is by 9.81 m/s2 ;-)
    2. Re:it doesn't matter by jank1887 · · Score: 3, Funny

      scientifical? that's great...

    3. Re:it doesn't matter by colinbrash · · Score: 1

      but in the eyes of his fanbase he remains a god.

      He has a fan base?
      I remember several years ago he was once taken seriously, but I thought interest in him had pretty much died out.

      Though I suppose if Pat Robertson can have a fan base, anyone can...

    4. Re:it doesn't matter by Dcnjoe60 · · Score: 2, Funny

      You've got a good point here and it describes the other side of of Steve Gibson. After reading that site, you'll understand his stories are mostly made of popular speak or disinformation, rather then scientifical information.

      And he's different from other mainstream media sources how?

    5. Re:it doesn't matter by Ilgaz · · Score: 2, Insightful

      He is important on popular media (ZDNet) and he is taken serious by non geek computer users, that is a huge power.

      I admit he explains the stuff very easy but especially his continuous realplayer bitching made me anxious. It was "half true", "half right" and MS Windows Media player came with "GUID" ON while Realplayer came with GUID OFF by default.

      (not speaking about current sw after even dumbest user learned what spyware is)

    6. Re:it doesn't matter by Mattcelt · · Score: 4, Insightful

      While I'm not an apologist for Gibson, I think it should be pointed out that he stated quite clearly in the original interview that his view on the metafile vulnerability was conjecture, and was based on his limited work with the subsystem.

      This wasn't a Chicken Little incident. I thought it was very reasonable, controlled, open to correction, and intended mostly to elicit a response from Microsoft, which clearly it did. All in all, I think this was a positive exercise in nearly every respect.

    7. Re:it doesn't matter by typical · · Score: 1

      He is important on popular media (ZDNet) and he is taken serious by non geek computer users, that is a huge power.

      Expressing security bugs accurately and correctly is often someone at odds with making a good media story. It sounds like Gibson is quite good at the latter.

      --
      Any program relying on (nontrivial) preemptive multithreading will be buggy.
    8. Re:it doesn't matter by rts008 · · Score: 0

      Good comment.
        I tried making the same observation when the podcast article was posted on /. But no one was listening as they were in Rabid Wolfpack Mode at the time.

      I am not a Gibson fanboy by ANY means, but sheesh guys, you all can twist words around better than our current administration on Capital Hill!

      --
      Down With Slashdot BETA!!! I've been around the corner and seen the oliphant; you can only abuse me from your perspecti
    9. Re:it doesn't matter by Anonymous Coward · · Score: 0

      "rather then scientifical information."

      Well, I'm sold. Anyone who uses such "brainy-like" words must be right.

      Go back to school and you may be able to understand the things that Steve discusses.

    10. Re:it doesn't matter by monkeydo · · Score: 2, Insightful
      While I'm not an apologist for Gibson, I think it should be pointed out that he stated quite clearly in the original interview that his view on the metafile vulnerability was conjecture, and was based on his limited work with the subsystem.

      When did he point that out? Certainly not in this interview where he was adamant that the flaw was a deliberate backdoor. The only thing he equivocated on was who at Microsoft knew, and how old it was.

      Steve: ...This was not a mistake. This is not buggy code. This was put into Windows by someone. We are never going to know who. We're never going to know - well, actually I'm going to find out when because we're going to know when this appeared because this appeared - I'm guessing this is not in older versions of Windows, which is why this function - or if it is in older versions of Windows, it's done slightly differently. I'm still on the hunt...

      Leo: So you're saying intentionally or - Microsoft intentionally put a backdoor in Windows? Is that what you're saying?

      Steve: Yes.

      Leo: Well, that's a pretty strong accusation. Could this not have been a...

      Steve: Well, it's the only conclusion...

      Leo: It couldn't have been a mistake?

      Steve: I don't see how it could have been a mistake. Again, I'm going to continue to look at it. But from what I've seen now, this had to be deliberate. It was not what we were led to believe.

      Leo: ...But let me ask you one more - you're convinced there's no way this could have happened by accident. It can't be a programming error or bad design.

      Steve: No. No. I mean, you know, again, this is as much a surprise to me, Leo, as it is to, you know, anyone who hears this. I did not expect to see this....

      Now, again, I will know more in a week. I have to say that, you know, I want to call this preliminary. But I don't see any way that this was not something that someone in Microsoft deliberately put into Windows. And, you know, the other thing, too...
      --
      Si vis pacem, para bellum
      The only thing more annoying than a Libertarian is an (un|mis)informed Libertarian
    11. Re:it doesn't matter by Anonymous Coward · · Score: 0

      I could be all wrong, but I think it's obvious that this is an intentional backdoor left by Microsoft to permit governments of the world to get at rts008's child porn. Or to put it another way, I think it's entirely obvious that rts008 rapes little children, but I could be wrong because I don't know rts008 at all.

      Making stupid, outlandish claims and affixing them with disclaimers of possible error is not acceptable. It does not make it any better.

  2. FIGHT! FIGHT! FIGHT! by LiquidCoooled · · Score: 2, Interesting

    Well, googlefight has Russinovich on the ropes, Gibson comes out well on top as far as hits go.

    However, Mark has been gaining himself a decent reputation recently.

    I know whos opinion and factchecking I trust at the moment.

    Mark Russinovich
    483,000 results

    Steve Gibson
    13,700,000 results

    --
    liqbase :: faster than paper
    1. Re:FIGHT! FIGHT! FIGHT! by Anonymous Coward · · Score: 5, Insightful

      It's hardly a competition. Mark knows Windows inside and out. He was the first licensee of the Windows NT source code and used it to produce a toolkit that is used as the basis for many of the device drivers that have been produced for Windows. Gibson has written some apps and has shot his mouth off about something before he'd looked closely enough. Sure the documentation for SetAbortProc was wrong, but this is a mechanism that is used in many parts of the Windows API and he should have realised how it was used.

      Hit counts don't count for much. Britney Spears is the highest in terms of web searches. I guess that means she beats both Mark and Gibson.

    2. Re:FIGHT! FIGHT! FIGHT! by idonthack · · Score: 0, Offtopic

      Doing a search for my full name, I come out with 1,040,000 hits. My brother got 1,710,000 and my cousin with a different last name got only 32,000. My cousin is probably more well known than my brother and I because he's in a band and his brother plays college football.
       
      Apparently Google results have more to do with the commonality of the first and last name more than anything else. Articles written about you probably help a little, though.

      --
      Why is it that when you believe something it's an opinion, but when I believe something it's a manifesto?
    3. Re:FIGHT! FIGHT! FIGHT! by TarikJax · · Score: 5, Insightful

      When Gibson was asked about the WMF thing being a back door he immediately replied "that's the only explanation." To me, that's not the language of a man who is open minded. There's no evidence that this is a backdoor other than Gibson's accusation and that is based on a false premise (that the metafile size was the deciding factor).

    4. Re:FIGHT! FIGHT! FIGHT! by Anonymous Coward · · Score: 0
      "Mark Russinovich"
      325,000

      "Steve Gibson"
      478,000

    5. Re:FIGHT! FIGHT! FIGHT! by diegocgteleline.es · · Score: 1

      I didn't even knew who Steven Gibson was before this post. Russinovich's site (sysinternals.com) is one of the sites you can't stop visiting if you're doing anything with windows, even NT programmers at Microsoft use it, and Microsoft talks about those programs in several support articles. Just because people has know him after he discovered and analized the sony rootkit doesn't means he has never had a "reputation" as an expert.

    6. Re:FIGHT! FIGHT! FIGHT! by Anonymous Coward · · Score: 0

      George Bush
      110,000,000 Results

      Still using googlefight to judge the validity of opinions?

    7. Re:FIGHT! FIGHT! FIGHT! by qwertphobia · · Score: 4, Funny

      Steve Gibson: 12,700,000 results.

      William Gibson: 21,300,000 results.

      Now who's your daddy?

      --
      Never ask for directions from a two-headed tourist! -Big Bird
    8. Re:FIGHT! FIGHT! FIGHT! by LiquidCoooled · · Score: 1

      According to google I died a couple of years ago.
      It was quite worrying when I found out about this (I couldv got an email telling me I was dead)

      --
      liqbase :: faster than paper
    9. Re:FIGHT! FIGHT! FIGHT! by general_re · · Score: 4, Funny
      Just because people has know him after he discovered and analized the sony rootkit...

      I'll guess from your handle that you may not be a native speaker of English. In which case, allow me to offer some friendly advice - the word you were probably looking for is "analyze", with a "y". "Analize" with an "i" is also a verb meaning...well, something else.

      Okay, mod me offtopic now....

      --
      ABSURDITY, n.: A statement or belief manifestly inconsistent with one's own opinion.
    10. Re:FIGHT! FIGHT! FIGHT! by LiquidCoooled · · Score: 1

      you just said the same as me.

      perhaps i should have been clearer, I trust Marks judgement more.

      --
      liqbase :: faster than paper
    11. Re:FIGHT! FIGHT! FIGHT! by Xerp · · Score: 1

      Steve Gibson: 12,700,000 results.

      William Gibson: 21,300,000 results.

      Now who's your daddy?


      35,000,000 for bill gates

      45,200,000 for porn

      233,000,000 for sex

      Good. Now I know who my daddy is.

    12. Re:FIGHT! FIGHT! FIGHT! by Anonymous Coward · · Score: 2, Interesting

      Umm, sorry but thats wrong.

      Mark had the opportunity to view the source code, but after reading the NDA he declined as some of the terms meant he would have to stop writing his Sysinternals code.

      Mark was *not* a licensee. He has not used the source code - all his tools are built on reverse engineering.

      This information came from the "Inside Windows Course" run in London by Mark Russinovich and David Solomon.
      Having attended the course and spoken to both of them, I'm very impressed with their knowledge.

      Another piece of useless info from the course - one of the parts of the XP prefetch code always assigned the ID "FAADB00D". The programmer thought that if people said it fast enough, it would sound like "fast boot"

    13. Re:FIGHT! FIGHT! FIGHT! by SleepyHappyDoc · · Score: 1

      Actually, I think 'analize' is quite appropriate for what he did to Sony (and what Sony did to us, for that matter).

      --
      Stasis is death. Embrace change.
    14. Re:FIGHT! FIGHT! FIGHT! by EXMSFT · · Score: 1

      An important correction in your post. Mark does not, and has not ever, had NT (or any other Windows) source code access.

    15. Re:FIGHT! FIGHT! FIGHT! by diegocgteleline.es · · Score: 1

      oh yes...that....was exactly what I wanted to say, sure. It was...ironic; we the intelligent people use that kind of things. It's a shame general_re didn't get it.

    16. Re:FIGHT! FIGHT! FIGHT! by diegocgteleline.es · · Score: 1

      you english speakers keep changing all the words what did you expect :(

    17. Re:FIGHT! FIGHT! FIGHT! by general_re · · Score: 2, Funny
      LOL. Sorry, but "analizing backdoors" puts a whole new spin on the thread here :)

      (Cue wocka wocka porn music)

      --
      ABSURDITY, n.: A statement or belief manifestly inconsistent with one's own opinion.
    18. Re:FIGHT! FIGHT! FIGHT! by Anonymous Coward · · Score: 0

      >Now who's your daddy?

      Jessica Simpson: 8,190,000 results.

      Jessica is allegedly quoted as saying, "Wait. I'm confused. How could you be my daddy? We only used the backdoor."

    19. Re:FIGHT! FIGHT! FIGHT! by Anonymous Coward · · Score: 0

      Steve gets that many results because he's a self-promoting bastard. It comes with the territory. All he really has in the way of applications is a hundred dollar hard drive testing app. On the other hand Mark has produced numerous high quality free applications that I actually use, and he discovered the Sony Rootkit.

    20. Re:FIGHT! FIGHT! FIGHT! by roman_mir · · Score: 1

      just FYI, this has nothing to do with any change in words.

      Look up the word analyze - the dictionary says: [Perhaps from French analyser, from analyse, analysis, from Greek analusis. See analysis.]

      But the problem with analize is that 'ize' is a suffix that can be added to many adjectives to form verbs that mean 'to cause', 'to become'. So 'digitize' means to make it digital, 'analize' then means to make it anal.

    21. Re:FIGHT! FIGHT! FIGHT! by Anonymous Coward · · Score: 0

      btw, you just posted your 2666th comment.

      Congratulation, today you are the satan.

    22. Re:FIGHT! FIGHT! FIGHT! by mlynx · · Score: 1

      To me it read "Bad Food" and makes me think of "Eating your own dogfood"

  3. Doorframe by Renraku · · Score: 5, Funny

    Not quite a backdoor in itself, but it makes a very nice doorframe. Complete with the Windows 'critical flaw of the month' moulding and Welcome mat placed in front of it, just ready for someone with a door to install it into the wall...

    --
    Job? I don't have time to get a job! Who will sit around and bitch about being broke and unemployed then?
    1. Re:Doorframe by Bimo_Dude · · Score: 5, Insightful

      Agreed. While it is important to know whether or not this was put in intentionally (IMHO, not intentional), I think what's more important is the fact that it exists, and what can be done to reduce the exposure to this flaw. Educating users is a good start. Maybe more of the mainstream media could cover stories such as this, and include instructions on how to patch / update for those who don't know.

      --
      "Teleporting Rodents with D-Cell Battery Displacement" theory -- IgnoramusMaximus (692000)
    2. Re:Doorframe by twitter · · Score: 2, Funny
      just ready for someone with a door to install it into the wall...

      What wall?

      --

      Friends don't help friends install M$ junk.

    3. Re:Doorframe by Craig+Maloney · · Score: 2, Funny

      So in essence Windows is like the Motel 6 down the street. Vulnerabilities can have a cheap, comfortable room.

      I'm so changing my startup sound on my work machine to "I'm Tom Bodett, and we'll leave the light on for you".

    4. Re:Doorframe by bill_mcgonigle · · Score: 1

      Agreed. While it is important to know whether or not this was put in intentionally (IMHO, not intentional), I think what's more important is the fact that it exists, and what can be done to reduce the exposure to this flaw.

      Great, let's look at the source. oh....

      --
      My God, it's Full of Source!
      OUTSIDE_IP=$(dig +short my.ip @outsideip.net)
  4. I don't think many people too Gibson seriously... by tpgp · · Score: 5, Insightful

    At least not many people I know.

    I think the real question about this WMF vulnerability is how on earth could it have survived five years under the new security aware, code auditting regime that we supposedly have at Microsoft?

    (Please don't reply that the wine people implemented it too - their goal reimplement the windows API, not audit it for security)

    --
    My pics.
  5. Re:Always picking no Windows... its better then li by Anonymous Coward · · Score: 2, Funny

    read topic much?

  6. ride the wave by DeveloperAdvantage · · Score: 5, Insightful

    because the issue continues to draw media attention I've decided to publicly document my investigation.

    i.e., I'd better hurry and get this out before nobody cares. :)

    --
    FREE - Java, J2EE and Ajax Audiobooks for Software Developers - www.DeveloperAdvantage.com
  7. Re:I don't think many people too Gibson seriously. by opusman · · Score: 1, Informative

    Gibson is an idiot with a talent for self-promotion.

    The reason no one stumbled onto the WMF thing until now is because Windows is a f*cking big program and, basically, no one spotted it until now.

  8. Re:I thought we covered this by BarryNorton · · Score: 3, Informative

    And already had a link refuting the claim that an invalid record size is necessary: http://blogs.technet.com/msrc/archive/2006/01/13/4 17431.aspx

  9. Re:I don't think many people too Gibson seriously. by Anonymous Coward · · Score: 4, Insightful

    I think the real question about this WMF vulnerability is how on earth could it have survived five years under the new security aware, code auditting regime that we supposedly have at Microsoft?

    (Please don't reply that the wine people implemented it too - their goal reimplement the windows API, not audit it for security)


    Sorry if I don't care about your rules for what I may and may not reply, but that the wine group did implement it says a whole lot of how difficult it was to spot. Their goal was to reimplement the API, sure, but you can bet your ass that they would have reported it if they saw it. And they did, despite it being right under their noses. Even Russinovich makes this point (but I guess you didn't really read TFA anyway, did you?). Forgive me if I trust his judgement a little more than yours.

    That doesn't say anything bad about wine coders, who, as we all know, are pretty good coders, but it does about the subtlety of the issue. Yes, MS deserves some blame. But let's keep things in proportion -- this was a tricky little bug.

  10. Re:fun fun fun by Anonymous Coward · · Score: 0
    The First impressions count

    Actually, The Third impressions count was a trupe, not a dupe...

  11. Back door or poor design? You can't really tell by digitaldc · · Score: 3, Informative

    First of all, that was extremely wordy article to explain the WMF vulnerability, IMHO. But some important points were made:

    if an attacker can get your computer to execute their WMF file through Internet Explorer or Outlook, for example, they can make your system execute arbitrary Windows commands, including downloading malicious applications and launching them.

    My belief is that Microsoft developers decided to implement as much as the GDI function-set as possible.

    In any case, its not clear that the developers envisioned applications creating on-disk metafiles with abort procedures.

    ...given a choice of believing there was malicious intent or poor design behind this implementation, I'll pick poor design.


    Either way, it is still hard to tell why it was designed that way in the first place, maybe one of these links can tell us?

    --
    He who knows best knows how little he knows. - Thomas Jefferson
  12. Re:I don't think many people too Gibson seriously. by Ruphuz · · Score: 2, Funny

    Well, as their name subtlely denotes, backdoors are on the back, hence the difficulty to spot them if not proactively looked for.

    That must be the raison d'etre for constructing them in the back.

    And, to conclude, if it is built like a backdoor, and squeaks like a backdoor, it must be a...

    --
    My other post is a First.
  13. Re:I don't think many people too Gibson seriously. by tpgp · · Score: 4, Insightful

    Sorry if I don't care about your rules for what I may and may not reply, but that the wine group did implement it says a whole lot of how difficult it was to spot.

    My point was that the wine people's goal was to reimplement. Not audit.

    MS's goal over the last 5 years was to audit. You would think they would have looked particularly hard at code with roots in Windows 3.1 (which, as Russinovich pointed out is a common source of poor API design)

    Their goal was to reimplement the API, sure, but you can bet your ass that they would have reported it if they saw it. And they did, despite it being right under their noses. Even Russinovich makes this point (but I guess you didn't really read TFA anyway, did you?). Forgive me if I trust his judgement a little more than yours.

    Well, forgive me if I don't trust some MS shill posting anonymously on slashdot, especially when they say:

    That doesn't say anything bad about wine coders, who, as we all know, are pretty good coders, but it does about the subtlety of the issue. Yes, MS deserves some blame. But let's keep things in proportion -- this was a tricky little bug. [emphasis mine]

    MS deserves some blame? Who else should we blame? The wine group? Mark? Steve Gibson? Slashdotters?

    Microsft deserves all the blame for this - they're responsible for the bad design, the bad implementation and the lax audit. Suggesting they only deserve a portion of the blame shows your bias.

    --
    My pics.
  14. *Security not included. by AHuxley · · Score: 3, Insightful
    Never attribute to malice what can be adequately explained
    by stupidity.

    Why waste time putting in a backdoor? Just ship the OS around the world and enjoy.
    With an expensive scaled up consumer operating system - the operating system is the backdoor.

    --
    Domestic spying is now "Benign Information Gathering"
    1. Re:*Security not included. by Anonymous Coward · · Score: 0

      If it looks like a backdoor and it works like a backdoor then it might as well be a backdoor.

      ...whether it happened with intent or without intent, whether any intent was malicious, stupid or whatever.

  15. How dumb can you be? by terjeber · · Score: 5, Insightful

    So, why would M$ (or anyone there) need to create such an elaborate "back door" to Windows? I mean, they could put anything in anywhere they wanted to. If they wanted to download some stuff to my PC and execute it they could distribute it as an update. They could add the code to IE or the kernel. This is one of the dumber conspiracy theories I have read.

    1. Re:How dumb can you be? by SilverspurG · · Score: 1

      They could put one anywhere. They chose to put it in association with WMF. They could distribute trojans through updates but then everyone would notice.

      You're not very good at circumventing security without getting caught, are you?

      --
      fast as fast can be. you'll never catch me.
    2. Re:How dumb can you be? by Anonymous Coward · · Score: 0

      Why a back door? Simple! Its all a part of the new Microsloth De-Activation program! Should you fail to pay for your yearly support next month they can send you a metafile to turn your XP off for a week or two. If you still refuse to pay after that then they send another one that installs an Active-X Guido type program to make sure you still remember how your check book works.

    3. Re:How dumb can you be? by terjeber · · Score: 1

      How would you notice? Please educate me. How would you notice, for example, that part of the explorer was doing stuff you didn't realize while you were browsing files on your PC? Collecting data say. Then the data collected was moved bits and pieces out to M$ using the windows update. How would this be easier to notice than a flaw in the WMF?

    4. Re:How dumb can you be? by SavvyPlayer · · Score: 1

      Let's see here. It could have been created by an employee (or contractor) with access to wmf code and some motivation (not necessarily influenced by a govt agency).

    5. Re:How dumb can you be? by Anonymous Coward · · Score: 0

      It is more likely that a malicious program contained within an update is overlooked than a suspicious WMF.

    6. Re:How dumb can you be? by lseltzer · · Score: 1

      In a way they don't even have to use a back door to deliver secret code to Windows users. Just deliver it over Windows Update.

    7. Re:How dumb can you be? by Srdjant · · Score: 1

      If this was an intentional backdoor, Microsoft would be able to say "oh... would you look at that! We made a slight bug.
      whoopsie-daisy." since as you say, it's much too elaborate to be intentional.

      If they put a backdoor in an obvious place, sooner or later someone snooping will find it and Microsoft will be caught red-handed. Putting it in a less obvious place gives them the power of deniability.

      Even the Borg know that... as we found out in Star Trek First Contact.

    8. Re:How dumb can you be? by typical · · Score: 1

      The idea was that it isn't Microsoft -- as you said, Microsoft has no reason to stuff a back door into the software. However, Microsoft has an awful lot of employees, and one of *them* might have thought that it would be fun to secretly introduce a back door.

      Remember Apple engineers introducing Easter eggs that the company didn't know about? Same idea.

      I think that it's safe to say that this really is just a bad design that never got examined by someone involved with securing software, and not an intentional hole, though.

      --
      Any program relying on (nontrivial) preemptive multithreading will be buggy.
    9. Re:How dumb can you be? by Anonymous Coward · · Score: 0

      and does it matter to them if it is found? other than they have to fix it...

      basically they could admit it , "yep its a backdoor, and tough luck we are microsoft and can do whatever the hell we want"

      outrage doesnt actually have a lot of effect.

  16. Not convincing by Anonymous Coward · · Score: 1, Insightful

    "The bottom line is that I'm convinced that this behavior, while intentional, is not a secret backdoor."
    So it is intentional and survived how many security reviews, yet isn't a secret backdoor?
    Keep drinking the Kool-aid.

    1. Re:Not convincing by InsaneGeek · · Score: 2, Insightful

      Well lets think a little bit here, I guess Linus intentionally allowed a back door into the Linux kernel as there have been security bugs that have lasted back into the pre 1.0 days. Going past bunches and bunches of seucrity revies (many more the WMF one). So I guess those must be really, really secret backdoors.

      Kool-aid, how about you taking off the tin-foil hat and come back to reality. FYI there was an article posted here that said they don't help at all.

  17. Well duh by Anonymous Coward · · Score: 0, Funny

    Of course it's not a backdoor, in more exciting news a whale swims up the Thames.

  18. Re:I don't think many people too Gibson seriously. by houghi · · Score: 1

    So what? The WINE people implemented it too.

    (Oh wait. DON'T reply with this. Sorry)

    --
    Don't fight for your country, if your country does not fight for you.
  19. Hhehe funny that by Anonymous Coward · · Score: 0

    Whenever I hear the words "Steve Gibson" or "GRC has advised that..." the first thing I think about is my old flatmate trying to install Debian PPC onto his Sun Ultra 5, also known as "Clueless n00b!"

  20. Re:I don't think many people too Gibson seriously. by BuR4N · · Score: 2, Informative

    "how on earth could it have survived five years under the new security aware, code auditting regime that we supposedly have at Microsoft?"

    It takes time to look trough 35 milion (Windows 2000) - 40 milion (Windows XP) lines of code...even for a big company.

    Slightly off topic but I was plesantly supprised to see that in Visual Studio 2005 (probably where there already in VS 2003 but I've never used that one) most of the offending runtime functions (memcpy, strcpy etc) have been marked deprecated and replaced with more secure functions checking for buffer overflow.

    Many other functions such as to stop hijacking of the stack pointer etc have also been implemented.

    --
    http://www.intellipool.se/ - Intellipool Network Monitor
  21. Re:I don't think many people too Gibson seriously. by Vo0k · · Score: 1

    duck?
    *ducks*

    --
    Anagram("United States of America") == "Dine out, taste a Mac, fries"
  22. Re:I don't think many people too Gibson seriously. by Pieroxy · · Score: 1

    The thing is, with all the lines of code in Windows, you don't really think that they looked at all of them ? There are most certainly a bunch of other flaws in Windows. It's just that nobody with the will to share it has found any yet.

    --
    Krazy Kat

  23. Re:Always picking no Windows... its better then li by jcaldwel · · Score: 0, Flamebait

    A good OS is made of much more than a Play-Doh user interface.

  24. Re:I don't think many people too Gibson seriously. by squiggleslash · · Score: 4, Insightful
    My point was that the wine people's goal was to reimplement. Not audit.
    Yeah, but let's be clear here: this wasn't obvious. If a similar bug went unseen in, say, XFree86/X.org for five years, there'd be no suggestion of a conspiracy. The argument would be that "many eyeballs" had missed the bug, so it must have been obscure, and at the same time can't have been deliberate because whoever implemented it implemented it for the world to see.

    How did it get into Wine? Well, there are two ways it could have done. One involves Microsoft documenting the behaviour of the relevent calls, which, the TFA implies, they did. They did it in the context of the printing subsystem, but it was, certainly, documented, and the reasons explained in that documentation make sense. This is almost certainly how the behaviour got into Wine.

    The other possibility is that there are a lot of WMFs around that make use of the feature, and after debugging, the Wine people found it worth implementing for compatabilities sake. We can safely assume that if there are that many WMFs around that us4e the feature, and they're not trojans or viruses (which we can assume they're not otherwise the Wine people wouldn't be trying to be compatable), then, again, Microsoft's reasons for incorporating the feature are, on the face of it, legitimate, and they're implementing something many programmers find useful.

    As usual Steve Gibson, like his brother Mel*, is seeing conspiracies that appear to have more to do with his dislike for those he disagrees, and, even more probably, his wish to attract a large audience of people who dislike them even more, with than any real bad faith on (Microsoft)'s part. Unlike Mel, he doesn't seem to be that successful, probably because the vast majority of the audience are a little more open minded, their open intelligence and open-mindedness often being the reason they dislike the dominant operating system seller in the first place.

    * Yes, I know he's not his brother, I'm just making a point.

    --
    You are not alone. This is not normal. None of this is normal.
  25. WMF Flaw not a Backdoor by Anonymous Coward · · Score: 0

    >WMF Flaw not a Backdoor

    And that's not incense.

  26. Re:I don't think many people too Gibson seriously. by m50d · · Score: 1
    MS deserves some blame? Who else should we blame? The wine group? Mark? Steve Gibson? Slashdotters?

    You've never had a security flaw in your code? It's an *accident*, the same as when the postman falls over and breaks your parcel. Oh wait, I forget, in America there's always someone to sue.

    --
    I am trolling
  27. Who needs a back door... by Anonymous Coward · · Score: 3, Funny

    ... when you can just throw a small rock through windows!

  28. Why would Microsoft add a backdoor? by Anonymous Coward · · Score: 0, Troll
    They control the friggin operating system, and everyone has to trust their code without seeing the source. Security patches are provided on a near-weekly basis for people to download. They can install whatever code they want, or probe the user's hard drive through the frontdoor which users have to keep unlocked just for them.

    Then there's the creepy "Tell Microsoft about the problem" button on the dialog that comes up whenever a GUI application (from any vendor, not just Microsoft) crashes - I bet their marketing folks get lots of good information on what apps people use on a regular basis, how they're being used and what frustrations their users are having. I'll bet that none of the information is passed along by Microsoft to Adobe or Corel or whoever wrote the app. Now that's evil.... Steve Gibson should be writing about that.

  29. Re:Back door or poor design? You can't really tell by m50d · · Score: 4, Insightful
    When a program sends a document to a printer, the program is already running, so if you allow it to execute arbitrary code by doing so, no biggie, it's worth it if you get some useful functionality out of it. Especially in the window 3.1 days.

    If you want to render something postscript-like onto a screen, why not just reuse the printer code?

    I can see how it happened. The original introduction of setabortproc violated separation of code and data, but it was needed for performance - and on the kind of hardware win3.1 ran on, that was vital. I suppose it shows that you should never compromise on design for the sake of performace - but in the real world, you have to. May I also point out that if the x86 had a working way to mark memory non-execute then this wouldn't be a problem.

    --
    I am trolling
  30. Re:I don't think many people too Gibson seriously. by SilverspurG · · Score: 1

    Some things are accidents. Some things are deliberate. Some things are somewhere in between. It looks to be the popular slam of the day to attack Gibson over this. Just like it's always popular to slam MS and, for a year or two, it was popular to slam the GPL.

    Step back off the tinfoilophobery, close your eyes (so you don't get too scared), and just think for a moment... "What if?" I know it may be a frightening experience for you, and you may need to broaden your horizons just a little... but "What if?"

    If you go with "What if?" then hiding a backdoor in WMF is a very logical thing to do.

    --
    fast as fast can be. you'll never catch me.
  31. Article title is wrong by biraneto2 · · Score: 1, Redundant

    The WMF flaw IS a backdoor. It's just not INTENTIONAL.

    1. Re:Article title is wrong by squiggleslash · · Score: 2, Insightful
      Well, you can read that many ways. Personally, if I saw an actual door built into the back of my house, I would assume it was intentionally put there. On the other hand, if I leaned against a wall and it fell down, then I'd assume that wall was badly built.

      This is more of a hole than a door.

      --
      You are not alone. This is not normal. None of this is normal.
    2. Re:Article title is wrong by systmoadownfreak · · Score: 1

      Exactly. Generally when you talk about programs having back door entrances, it's a program thats either been illegally modified or was built for the purpose of gaining access to your computer. It's the whole idea behind commercial malware.

      So honestly I don't feel that MS was aware of this. If they were they were just trying to figure out how to solve the problem without alerting the public. I don't think that they built this in purposefully to gain access to users computers.

    3. Re:Article title is wrong by Firehed · · Score: 1

      Nah, it's an unintentional frontdoor.

      --
      How are sites slashdotted when nobody reads TFAs?
  32. Steve by timbrown · · Score: 4, Funny

    Perhaps Steve would like to present his findings at the next DunceHats security conference. We could do with people of his caliber.

    --
    Tim Brown
  33. Re:Always picking no Windows... its better then li by oztiks · · Score: 2, Funny

    Excuse me if i'm wrong but i believe this post was stolen from a previous artical way back when. I know this why? because i sit at home in my mothers basement looking at slashdot all day and have a kick ass memory ... almost as good as ecc ram!

    If i wasnt a lazy slashdot junky i would actually go looking for this posting but at the end of the day the GP being the 1st post and being so long at the same time makes obvious sense that it was c&p from somewhere.

  34. It IS Hype by LittleLebowskiUrbanA · · Score: 3, Insightful

    and that's all Steve Gibson does. If I read one more blurb about how great it is that he can code in assembly...

    1. Re:It IS Hype by NutscrapeSucks · · Score: 2, Insightful

      If I read one more blurb about how great it is that he can code in assembly...

      Right, he codes Win32 apps in assembly. So he has the ability to dis-assemble the WMF player code and figure out what's really going on. Instead, he made a couple shallow observations and jumped immediately to a conspiracy theory.

      --
      Whenever I hear the word 'Innovation', I reach for my pistol.
    2. Re:It IS Hype by RubberDogBone · · Score: 3, Funny

      But but but! Don't you know, he can code Windows on the back of a napkin in his hand-optimised assembler code!!! /sarcasm

      --
      Sig for hire.
    3. Re:It IS Hype by Kaenneth · · Score: 1

      assembly is for wimps.

      copy con: program.com
      alt-###, alt-###, alt-###...

      and yes, I actually used that means to program a keylogger executable into a machine that had it's body locked in a cabinet, so only the keyboard and screen were accessable.

      but real programmers use toggle switches.

  35. The final update from Steve Gibson by mattotoole · · Score: 2, Informative

    Steve Gibson gave his final word on this matter in a thisweekintech podcast interview: http://thisweekintech.com/sn23 Briefly, someone at Microsoft had the bright idea that one should be able to run code inside an image, for whatever reason. This left a backdoor, probably unintentional. Mr. Gibson regrets that his use of the term "backdoor" implied malice to some people. This was not his intention.

    1. Re:The final update from Steve Gibson by Fnord666 · · Score: 1

      In summary, Gibson made a claim that was sure to draw media attention, someone called bull$hit, and now he has to backpedal and eat crow.

      --
      'The tyrant will always find pretext for his tyranny.' - Aesop's Fables
    2. Re:The final update from Steve Gibson by Anonymous Coward · · Score: 0

      Have you actually RTFA? It explains exactly why they put this "feature" in.

    3. Re:The final update from Steve Gibson by Ayanami+Rei · · Score: 1

      There's no such thing as an unintentional backdoor.
      A backdoor is something you purposefully build into your software, like you purposefully build a back door into your house. An accidental backdoor would be like a hole in the wall. You know, a SECURITY HOLE. Steve is just making shit up as he goes along, convienently redefining words.

      --
      THIS THING CAN TURN ON A DIME, MACROSSZERO STYLE ALSO FUCK BETA, ~NYORON
  36. Re:I don't think many people too Gibson seriously. by squiggleslash · · Score: 4, Insightful
    No, it isn't. To believe this is a backdoor, you have to believe that people thought Windows computers were going to be hooked into a giant, international, network back in 1985-1990 (and that WMF and the 8086/x86 architecture would still be relevent by the time that network came into being.) You have to believe that people would have implemented this, documented it, and not thought that there was more than a little bit of a risk that it would be identified. You would have to believe that there were no legitimate reasons for implementing a technology in this way in the every-byte-counts WMF-is-a-hack-anyway environment that was the late eighties.

    I mean, if I worked for Microsoft, given the context, I can tell you right now that had I invented WMF, I probably would have made a similar error in the name of "flexibility", and I would have assumed that computers in five years time would be using real-time EPS (that's embeddable PostScript, the initials standing for Encapsulated Post Script, for you young'uns, that's what we were all talking about then as being the future of vector formats) renderers, not WMF, seeing it as a short-term hack until processing power became powerful enough. I certainly would have been surprised to see it still in operating systems in 2006. I'd have been surprised to see the ix86 range in computers in 2006.

    Bad faith on Microsoft's part? Bullshit. Microsoft made no effort to hide this one. It made sense they implemented it that way given the context. It was an error, a short-termist attitude which has undermined many a Microsoft product. Until the late nineties, Microsoft was routinely making such errors, the most infamous being the support for embeddable, automatically run, Visual Basic scripts in Word documents. Why this is being treated as any different to every security error Microsoft has made in the past is beyond me.

    --
    You are not alone. This is not normal. None of this is normal.
  37. Another bug? by Skiron · · Score: 1

    FTA:

    "I've addressed the first two of Steve's observations, but what about his claim that the abort procedure only executes when the SetAbortProc record contains certain invalid record sizes? I've analyzed the control flow of the PlayMetaFile function that executes WMF file records and found that, if an abort procedure is registered, it calls it after executing each record except the last record of the file. That behavior makes sense since there's no need to ask an application if playback should be aborted when the playback is already completed.

    Steve's example WMF file contains only one record, the one that specifies SetAbortProc, so under normal circumstances PlayMetaFile will never call his abort procedure. The record sizes that he found trigger its execution cause PlayMetaFile to incorrectly increment its pointer into the WMF file such that it believes that there are more records to process, whereas the values he used that don't trigger the execution land it on data values that indicate there are no more records. So his assertion that only certain magic values open the backdoor is wrong."


    To me this looks like Gibson actually stumbled on another bug in the same piece of code.

  38. Vindication is sweet by Anonymous Coward · · Score: 1, Interesting

    It was funny seeing how a lot of people were dismissing the "Gibson Bashers" in the original /. thread. Well, guess what? grcsucks.com really was right about the guy. Told ya so. Mmm, vindication. :)

    Just take one look at the sensationalist language and snakeoil-salesman design style of Gibson's website (doesn't it remind you of other shady sites) if people need more convincing that Gibson is a fraud.

  39. Re:I don't think many people too Gibson seriously. by dc29A · · Score: 1

    I think the real question about this WMF vulnerability is how on earth could it have survived five years under the new security aware, code auditting regime that we supposedly have at Microsoft?

    Windows has a gigantic amount of code. That's one problem. Second problem might be that Microsoft lacked a reviewer who had could see "the big picture". I could code an API call that takes in a few parameters and makes a callback function. The API call itself is 110% well coded, safe, parameter checking and whatnot. But I do not know who uses it and for what reasons. So it can be made entirely unsafe if the upper layer of the system allows unsafe use of it. If someone doesn't see the "big picture", safe functions can be used in an unsafe way and since no one can connect the dots, the WMF flaw was probably reviewed as "safe".

    Then again, it could be simply that it has fallen through the cracks. Maybe some reviewer did a sloppy job and said: Well, it's an old unused subsystem that no one uses so it's safe!

  40. SomeONE? by way2trivial · · Score: 1

    christ man, there are many many many..

    the mailman sues his employers, for putting him in harms way
    the manufacturer of his footwear, for it not being slip resistant enough
    the manufacturer of his mailbag, for a capacity spec that allowed him to get so top heavy/off center
    you, for shipping/recieving dangerous goods that did not break his fall- and gave him a nasty bruise an emotional disturbance.

    the people who witnessed the event all sue the above, plus the mailman, for emotional disturbance
    the USPS sues all the above, including the people who sued for emotional disturbance for the damage this does to the USPS reputation

    then OSHA gets invloved, and fines USPS
    and then congress passes laws requring one carrier per piece of mail
    then the economy breaks down, and causes the apocolypse.

    hmm.. looks like they were right after all
    http://science.slashdot.org/science/06/01/16/12402 34.shtml

    --
    every day http://en.wikipedia.org/wiki/Special:Random
  41. Re:I don't think many people too Gibson seriously. by Anonymous Coward · · Score: 0

    Absolutely. Last year, someone discovered a security hole in the Linux kernel that had been in every version since 0.9 or something. And this is one of the most widely examined and audited pieces of software in existance. The *nix system has a lot of old software, and probably has a very similar rate of old bugs and design flaws as Windows.

  42. Re:NOT off topic. MOD PARENT UP. by Anonymous Coward · · Score: 0

    You've been tricked by an old troll. This sort of copy-paste first post crap is hardly "the expression of ideas".

  43. Re:I don't think many people too Gibson seriously. by Anonymous Coward · · Score: 0

    I think the real question about this WMF vulnerability is how on earth could it have survived five years under the new security aware, code auditting regime that we supposedly have at Microsoft?

    The "security aware" thing is marketing, not technical. It's "we make security updates every other wednesday, no matter if we have a problem or not, and no matter if it should have been fixed last week". Makes you look good to those who don't know anything about IT security (like reporters), without improving real security.

    No, the day Microsoft starts caring about real security, we will know it. It will be the day we see KB123456789: Remove support for ActiveX from all versions of IE.

    Until then, "it's a feature, not a bug" is still the way they work.

  44. Gotta give props to Gibson, but... by Xenophon+Fenderson, · · Score: 3, Insightful

    I think everyone would agree that Steve Gibson is a technically-gifted person, but we should also agree that the guy is a little wacky, just like we should also all agree that Theo De Raadt is a little hot-headed. Not that this makes Steve or Theo a bad person - quite the contrary! It's just that when they make grand pronouncements, the pronouncements should be viewed skeptically. Anybody remember the controversy over NSAKEY a few years ago? I.e., a flurry of wild allegations over something used for code signing that no one now cares about now that it's named something less offensive (_KEY2 for those playing along at home). It's easy to get all hot-headed and worried and freaked out, but that's the antithesis of what a information security officer is supposed to do. They are supposed to stay calm and rational in times of crisis, never jumping to conclusions (because most of the time, those conclusions are worse than wrong: they are misleading). Well, I'm ranting but you get the picture.

    --
    I'm proud of my Northern Tibetian Heritage
    1. Re:Gotta give props to Gibson, but... by Anonymous Coward · · Score: 0

      i don't agree. which high complexity software gibson made?. why is he a technically-gifted person?

    2. Re:Gotta give props to Gibson, but... by LeeMeador · · Score: 1

      "... Steve Gibson is ... a little wacky"

      And we're here on /. because we're all well adjusted?

      Right ....

    3. Re:Gotta give props to Gibson, but... by Bishop · · Score: 1

      Steve Gibson is not technically gifted. He may understand computers and software but he only has a shallow understanding of computer security. Gibson does a decent job of sumarizing what other security professionals write. And he does a very good job of writing about himself.

    4. Re:Gotta give props to Gibson, but... by Kadmos · · Score: 1

      Steve Gibson's best skill appears to be making an ass of himself in public. One would think that after making all the mistakes he has in public he would learn that he should check his facts before he publishes. But fortunately for him he doesn't need to, his audience is not the technically minded or those interested in computer security, his audience is the average user who doesn't know anything about security. People who don't have the knowledge to tell fact from headline grabbing doom and gloom. And he will continue to grab headlines because most people don't know any better.

  45. Re:I don't think many people too Gibson seriously. by Kevin+DeGraaf · · Score: 2, Insightful

    Gibson is an idiot with a talent for self-promotion.

    Big time. He's the guy who came up with broken SYNcookies and blathered on and on about how they were "Beautiful and Perfect". Gibson is a quack and no serious attention should be paid to his ramblings.

    --
    We have more to fear from the bungling of the incompetent than from the machinations of the wicked.
  46. Re:I don't think many people too Gibson seriously. by swillden · · Score: 1

    No, it isn't. To believe this is a backdoor, you have to believe that people thought Windows computers were going to be hooked into a giant, international, network back in 1985-1990

    I don't believe it's a backdoor, but no, you don't have to believe that the alleged WMF hacker was prescient. The WMF flaw would also have been a useful way to get a user to run malicious code on his computer. If you were an early 90's black hat and you wanted to do something nasty to a particular person's computer (to which you didn't have physical access), you could give them a diskette with an image file that would run arbitrary code chosen by you. If said person didn't trust you, they might not be willing to run a binary you gave them, and they'd probably be very careful not to boot off the floppy you gave them (boot-sector viruses were common then), but they might very well use an image file.

    As I said, I don't think this was an intentional backdoor, but if it were it could be exploited without a network.

    --
    Note to ACs: I usually delete AC replies without reading them. If you want to talk to me, log in.
  47. This is where being able to see the source helps by dustwun · · Score: 2, Insightful

    Not to add to the continual Linux vs Windows battle-royal here on /. but this is exactly where being able to look at the source code helps. There would be no conspiracy theory if we could see the code related to WMF files. The most we'd be able to do is say "Damn, why'd they do it that way?". As one of the readers already posted, Mark Russinovich has seen the NT source, and is in the best position to say what is or isn't in the code. The rest of us are left to listen to whatever source seems credible at the time and hope they're right. Hiding things from your customers leads to just this sort of public speculation, and when you're the voted "Most hated monopoly", public speculation isn't really ever going to be in your favor.

  48. You'd be wrong there... by Anonymous Coward · · Score: 0

    We've twice gotten reports from Microsoft, based on those crash logs from users running our applications. In both instances, they included workarounds/explanations for the problems that were causing the crash.

  49. Re:Back door or poor design? You can't really tell by spectecjr · · Score: 4, Informative

    Either way, it is still hard to tell why it was designed that way in the first place, maybe one of these links can tell us?

    It's quite simple:

    WMF is used under the hood in lots of places in GDI. Any time GDI passes a bunch o' commands from one place to another, you'll find WMF. And as a result, WMF encapsulates almost everything you can do with GDI.

    SetAbortProc is used to allow an app to display a custom "Printing Page xxx of xxx... [Cancel]" dialog to be displayed on Windows 2.0, 3.0 and 3.1, all of which are cooperatively multitasking and so need to drain their message queues on a regular basis - which they do every time that AbortProc is called.

    There are even examples of this exact behavior on MSDN. It's still semi-useful under later versions of windows to be able to do this, and it's good for backwards compatibility, so it stuck around.

    --
    Coming soon - pyrogyra
  50. Re:I don't think many people too Gibson seriously. by njchick · · Score: 1
    As far as I know, Wine has never implemented the actual vulnerability, i.e. execution of the code included in the wmf file. The did implement SetAbortProc for screen rendering, and ripped it out when the Microsoft vulnerability came to light just to be on the safe side. From dlls/gdi/metafile.c history:

    revision 1.12
    date: 2006-01-06 20:52:46 +0000; author: julliard; state: Exp; lines: +7 -0
    Marcus Meissner
    gdi: Filter GETSCALINGFACTOR and SETABORTDOC proc in metafile
    Escapes.

  51. I don't buy the explaination by mlwmohawk · · Score: 1

    While Steve Gibson is a bit of a crank, Mark Russinovich is also a Microsoft Apologist. Here are my problems with the explaination: Reading an address: SetAbortProc * fn; read(&fn, sizeof(SetAbortProc), wmf); (fn)(...) vs Reading code: read(code, bytecount, wmf) SetAbortProc * fn; fn = (SetAbortProc) code; (fn)(...); Even Mark was a little confused about this behavior: "The remaining question is why PlayMetaFile expects the abort procedure to be in-lined in the metafile. It's that fact that allows a hacker to transport malicious code within a WMF file. The actual reason is lost with the original developer of the API" He then goes on to make an excuse for the developer being flexable or something. NO developer would see the utility of embedding code in Windows 3.1 or even Win32 as the code fixups are not made in a data source. In Win16 days, you wouldn't have access to your data segment. If this bug was around in real mode days, you couldn't even be sure your program was in memory without a thunk. It is this feature that is the dangerous and of the most dubious utility, and it is this feature that gets a quickest glossing over. I am reminded of the NSA key BS about Microsoft needing a duplicate key in case they lost the original. Give me a break. Now, I respect Mark Russinovich's technical abilities, but he has, most of the time, been a Microsoft apologist, and I don't think that this piece is any different. There is a feature that allows arbitrary code to be executed, there is no real reason for it being there as developing code to use it would require a different tool chain than that used to create applications. As the Windows API went from 16 bit to 32 bit, from a DOS extender to a VMS hack, this functionality has been maintained, and that would require work as the C language and compilers and bit depths have changed over the years. Sorry, I don't trust Microsoft, if its there and has been maintained for some time, it is there for a reason. What is that reason?

    1. Re:I don't buy the explaination by Anonymous Coward · · Score: 0

      Yes, when I asked Mark at the 2002 Palm Springs SQL conference if he was ever into the better kernel (netware) or even one where he could see the source (linux), he said No. So, he has had the chance to see other kernels, but refuses to learn about them.

      Now granted he has stayed his focus on MS during his PhD years,
      he often quotes from mysterious meetings or emails with Landy Wang or other members of Cutler's kernel team. Seems he is either a MS plant (like Bob Lazar of nuts-gone-wild UFO fame), or he just is guessing correctly 85% of the time what the hell those redmond boys are actually doing on a keyboard.

      Anyone serious about code who has worked the MS halls, like Joel Spolsky (invented Excel macros), knows MS doesnt hire the brightest.

      I surmise WMF was an early industry attempt at OOP. A flawed one now, but in the late 80s, security wasnt even an issue.

      I would not choose a bitmap file format as my container for OOP experimentation.

      MS should patent the damn thing and thereby close down access to or "retire" the format.

      Has anyone other than the Office clipart gallery and Kim Komando used wmf's lately?

    2. Re:I don't buy the explaination by EXMSFT · · Score: 1

      I don't think I'd describe the guy who showed how to hack Windows NT Workstation into NT Server, who showed how to bypass group policy as a local limited User, and similar Windows cracks as a Microsoft apologist...

    3. Re:I don't buy the explaination by mlwmohawk · · Score: 1

      His technical abilities are solid and his access to NT source is no doubt a great advantage. That being said, writing technical articles is one thing, but he never takes the step to examine *why* microsoft has done something nor does he bring to light any insight about motivations.
      In his blog, he dismisses the reason for one of the most damning aspects of the metafile exploit as lost with the original programmer. Ignoring that long since the original developer, the code has to have been maintained, and if maintained, tested, on a progressive line of Windows changes over the years.
      If there was no known reason for the code, it is inherently hard to test, it would have been removed had there been no use for it.

    4. Re:I don't buy the explaination by EXMSFT · · Score: 2, Interesting

      Mark doesn't have access to NT source code. Never has. This is a common misconception.

      He's a technical writer, not a psychologist. Why should he write about motivations. A classic adage goes, "Never attribute to malice what can be explained by stupidity". Steve jumped the gun in a BIG way. Microsoft's actions over time have been explained by many as being malicious. I never saw Microsoft as malicious at the coder level. Most developers at Microsoft love their jobs and could give a crap about a competitor - let alone coding in something to "cut off their air supply".

      Windows sucks for the reason you have pinpointed. It is backward compatible to the point of killing itself. Compatibility code was one of the single largest attack surfaces I recall hearing about during the security code review in 2001. Windows doesn't get culled regularly for "old code" or "bad code" as those aren't binary values - those are hard things to discern in an automated fashion, so they get effectively swept under the rug. Code doesn't get removed in Windows. It just gets forgotten. Seriously.

    5. Re:I don't buy the explaination by spitzak · · Score: 2, Insightful

      I agree his explanation is a bit off, but I still feel this is a mistake, not something intentional.

      Where he is wrong is his assertion that MS saw any reason to put the AbortProc into WMF files. The fact that they work at all is entirely by accident, nobody went and typed in any code that is executed only for making AbortProc run from the file.

      What happened is they had an interface of a few hundred calls to print and control printers. They wanted three things: for the calls to work, for the same calls to write a WMF file, and for reading the WMF file to do the same thing as the original calls. The only reliable way to make sure the WMF file does the same thing as the original calls is to make sure they call the same code.

      To do this, they made up an enumeration for every call. Every call was then recoded to turn it's arguments into a block of data, a length, and the enumeration value, and to call a central function. This function first checked if a WMF file was being written, in which case the enumeration and block of data was written to a file. Otherwise it ran a big case statement or dispatch table to code that took the arguments back out of the block and implemented the function. When reading a WMF file the reader extracted each enumeration and block and called the function as well. This meant that if the direct call worked, you were almost certain that the write and read of the WMF file worked, too.

      It is highly likely this central function did a lot of other code before running the dispatch (such as check if the printer actually exists), and the SetAbortProc needed to do that code as well. So somebody implemented SetAbortProc as another enumeration, and stuck the code pointer into the already-available block pointer, and called the central function. I would guess that they left the block length as garbage (somebody needs to find out if you can write a SetAbortProc call to a WMF file using the normal interface to see. I bet it is not possible to create a usable file this way).

      Without any planning they now have the backdoor. If you manually put the enumeration for SetAbortProc into the file, the file-reading code blindly calls the dispatch with that enumeration, a pointer into the file, and a length (which will be ignored). The dispatch calls the interpreter, which sticks the pointer into the AbortProc pointer. I expect the dispatch function also calls the AbortProc as the first thing, so the very next record causes the code to be executed.

      Two things about this:

      First, the code must have contained an obvious cast to a function pointer from a data pointer. This should have been trivial to catch with automated auditing tools. Once detected, it should have been easy to prove that the normal interface could never write a working SetAbortProc to the stream, so there was no reason to interpret it, and rip the function out of the dispatch and recode SetAbortProc to set the pointer directly.

      Second, it is a good reason why such designs are trouble-prone. A stream-based interface is better, where the user code constructs the stream in a buffer, and the contents of this buffer, rather than the calls used to fill it, is the definition of the API. In this design they never would have reused the interface for SetAbortProc.

    6. Re:I don't buy the explaination by mlwmohawk · · Score: 1

      The problem wth your post is that you state that there is no difference between executing code in a file vs executing a function address. This is incorrect. It is IMPOSSIBLE for code designed to read a pointer out of a file or memory address and call that address to jump to the locaton of what should be a pointer.
      These two distinct behaviors must be coded differently and must be maintined differently as compilers, bit depths, and core OS change over time.
      I still say the the embedded code aspect of the metafile is damning and unexplained. Waived away, easily, as "lost with the origial programmer," but completely ignoring the almost two decades that the code has been maintained and working.

    7. Re:I don't buy the explaination by spitzak · · Score: 1

      I agree, that's why I said there should have been an obvious cast that they should have automated tools to detect. However I can see how somebody would have typed that cast in originally without realizing it was a backdoor, since it never occurred to them that the code with the cast could be called from a file parser.

      Also the code really is in the file, not a pointer. The file parser likely does something like this:

      int code = readchar();
      int length = readint();
      void* pointer = get_pointer_to_next_byte();
      advance_file_pointer(length);
      dispatch_function(code, pointer, length);


      Now the mistake was that the implementor of SetAbortProc needed to execute some other useful stuff inside dispatch_function. So instead of SetAbortProc doing this:

      AbortProc = pointer;

      it was instead implemted like this to get other side effects of dispatch_function:

      dispatch_function(SetAbortProcCode, (void*)function, 0);

      And added to dispatch_function something like this:

      case SetAbortProcCode:
      AbortProc = (int (*)(hPrinter,int,etc))(pointer);

      (this is the cast that I think should have been easy to look for)

      They never realized that the parser, if it encountered SetAbortProcCode in the file, would call this exact same code with a pointer into the file and thus set AbortProc to point into a buffer. If the AbortProc was called before the buffer was overwritten, code from the file would be executed. It didn't help that 8086 requires no alignment of code, code can be position independent, and there is no way to make a page readable without making it executable.

      To further make it work, I'm certain dispatch_function does this as almost the first line:

      if (AbortProc(args)) {printer->aborted = true; return;}

      Thus the very next record that calls dispatch_function will execute the code for you.

    8. Re:I don't buy the explaination by mlwmohawk · · Score: 1

      You are sort of missing the point, when used as documented, the SetAbortProc contains a pointer to a function. When used as the exploit, it executes the code embedded in the file. There are two distict methods of executing code and can not be handled by the same chunk of code.

      You gave this as an exmaple:

      int code = readchar();
      int length = readint();
      void* pointer = get_pointer_to_next_byte();
      advance_file_pointer(length);
      dispatch_function(code, pointer, length);

      The problem is that there seems to be a misunderstanding of pointers in C here.

      AbortProc *fn;

      read(&fn, sizeof(AbortProc), file);

      IS NOT THE SAME AS:

      read(pointer, file_size, file);
      fn = pointer;

      In the first example we are reading sizeof(AbortProc) bytes from the file into the function pointer, which then points to a location in memory as descrived by the data read. In the second example, we are setting the function pointer to the location of memory into which the contents of the file was read.

      It can not be done by the same code accidentally.

    9. Re:I don't buy the explaination by spitzak · · Score: 1

      No, I literally mean that it is putting a pointer to the file contents into the AbortProc function pointer.

      The problem is that the SetAbortProc function had to shove a pointer to code through some api that was designed to take blocks of data. So they put the code pointer into the data pointer, and had code on the other end cast it back. Then they made a file reader that uses the same api and passes pointers to the file data in the same data pointer, never realizing that one of the possible interpretations is to cast this pointer back to a code pointer.

      The version you have would have resulted if the SetAbortProc had instead passed a pointer to the pointer to the code as the argument. That certainly would have worked and made this security hole much harder to exploit, it would also allow them to pass a useful "length" number. But I can certainly see why they did not do that when they were writing this so quickly.

    10. Re:I don't buy the explaination by mlwmohawk · · Score: 1

      You're not getting it!!
      In C "casting" doesn't do magic. In the most basic terms, the correct implementation, you read four bytes from the metafile, and that points to the address of your AbortProc in the system. That is *THE* *DOCUMENTED* behavior of the function.

      The exploit implementation is where the code is executed, it is a strange API, it loads the file into RAM and then jumps blindly into the block of code loaded from the file, it is sloppy and dangerous, but *this* is the exploit that is problematic and being discussed.

      In fact, in Win16 days, you would have to REALLY go out of your way to do this because have to make a DS to CS alias to allow executon on that segment of memory. (In 80286 potected mode data segment selectors did not allow execution, you had to create a "code segment" to execute it)

      The exploit implementation is VERY difficult to maintain over OS, compiler, and language changes for a couple decades. It is not by accident that this function is still there. The question is why is it still there?

    11. Re:I don't buy the explaination by spitzak · · Score: 1

      I think I'm not explaining this clearly.

      Imagine there is another call to the printer: DrawText(char* buffer, int length). The "buffer" argument is a pointer, pointing at a bunch of characters that should be drawn on the device.

      When reading the WMF file, it should be obvious that reading a pointer from the file is useless (it could only print strings that happen to be in the memory space of the program). Instead the actual contents of the buffer are in the WMF file, so it passes a pointer to this data to the function.

      The problem is that the same code being used to parse the above hypothetical DrawText call is also able to parse the SetAbortProc call, and it passes an identical pointer, into the file data, to that function.

      I think everybody is being confused by the fact that SetAbortProc takes a pointer. This means that if SetAbortProc was purposely put into WMF files, it would make sense to follow it with 4 bytes that are the pointer. The problem is that it was accidentally put into the file, with the result that the executed code is right in there.

      The reason the 8086 segment register is set is that they were using "far" pointers and the code dutifully copied the segment into the CS register, thinking it was a legitimate code pointer. If they had stuck to short pointers they would have been forced to pass a pointer to a far pointer and this would not have been as bad of a bug.

      The question is why is it still there?

      That I agree is a very good question. Microsoft talks a lot about their code reviews but this indicates there are very big holes in them, because I feel the code should have had an obvious flag for pattern-detection of questionable code.

    12. Re:I don't buy the explaination by mlwmohawk · · Score: 1

      No, you are explaining what you are saying perfectly, it is just that you are incorrect. There is no way that code would "accidentally" be put into the file. It would always be just the 4 byte function pointer. The difference between a call like "DrawText" and "SetAbortProc" is that code is unlike data. Data has some delimiting quality, like a count of bytes or a zero termination. To copy executable code into file would require additional information, starting point (probably the pointer) and count of bytes to copy, which is not present in SetAbortProc, I doubt it is possible to even extract this information in C without some real ugliness. When I talked about DS to CS aliasing I was talking about protected 16 bit mode of the 80286 and 80386. In real mode Windows you could not make an arbitrary far call (32 bit) as Windows moved and delete code segments that were not in use. You needed to make a far call into a thunk which would ensure that your code segment was in memory.

    13. Re:I don't buy the explaination by spitzak · · Score: 1

      I think we both understand each other. I said earlier that I doubted that anything wrote the SetAbortProc record. As you stated, correctly writing this would require knowing the length of the code to write.

      I suspect calling SetAbortProc when writing a WMF file wrote a nonsense length (such as zero) to the file. Somebody needs to test this. This is beacuse the SetAbortProc called the central dispatch routine with a pointer and had to pass a nonsense length, which it knew would be ignored (because they were not thinking about writing a file). I doubt correct use of Microsoft's api could produce a file with an exploit, though it might cause it to crash when read.

      However a hand-inserted SetAbortProc enumeration, followed by the code (which the writer knows the length of...) could easily trigger the call. The file reader treats the code as though it was a block of text and puts it in a buffer and passes a pointer, and the length specified by the file, to the dispatch function. The dispatch function then calls the case for SetAbortProc, and that case ignores the length and stores that pointer into AbortProc, thinking it is a pointer shoved through the data interface from an actual call to SetAbortProc. It does not matter how hard it is to cast it and load the segment registers, this code literally has to do all the necessary steps, or SetAbortProc would not work!

      I think the confusion we are having is that you are imagining what would be done if somebody literally wanted to save SetAbortProc in a file, perhaps to be played back by the same program, so that a code pointer would still point to some code. In this case, yes, they would write the 4 bytes of pointer to the code to the file. But what you (and the writer of the article) are missing is that nobody intended to write it to a file (even then it certainly was blindingly obvious that it would be a security and stability problem). What we see instead is a side effect of trying to reuse an internal API, not realizing what else is calling that API.

    14. Re:I don't buy the explaination by mlwmohawk · · Score: 1

      Again, you seem to be confused about how C/C++ pointers work. You are confusing a "pointer" with a "pointer to a pointer" CODE:
      int len = get_file_length(wmf);
      void *wmfbuf = read_file(wmf, len);
      int pos=0;
      while(1)
      { TAG *tag; // Will contain tag info
          void *p = get_next_record(wmfbuf, &tag, &pos); // Void pointer P points to the data supplied in the file
          switch(tag.type)
          { case SET_ABORT_PROC:{
                if(as_documented){
                  AbortProc ** pfn = (AbortProc **)p; // P Points to address of function
                  AbortProc * fn = *pfn; // Copies 4 byte address from pfn into fn;
                }
                else if(as_exploit){
                  AbortProc *fn = (AbortProc *)p; // Points to actual code
                }
                break;
              }
          }
      In the above example, the pointer (fn) is initialized with the first four bytes of data from where pfn points. Your argument implies that the compiler will confuse a "AbortProc *fn" and "AbortProc **pfn" which would cause an error.

      This is basic C/C++ pointer stuff and I assure you, there are different types of pointers and it is not possible to confuse the two and still have both work. Each behavior MUST be coded separately.

    15. Re:I don't buy the explaination by spitzak · · Score: 1

      No, I am saying the code really is the code you claim is "as_exploit":

              AbortProc *fn = (AbortProc *)p; // Points to actual code

      What I think is confusing you (and others) is that you are trying to think about how you would write it if you really wanted to make SetAbortProc work at all in a WMF file. I believe however that nobody thought of this at all.

      What happened is that there was a function that the WMF interpreter calls:

              void do_wmf_record(int code, char* pointer, int length);

      And the implemetor of SetAbortProc needed to call this, because internally that function did something they needed. So they implemented SetAbortProc like this:

              void SetAbortProc(AbortProc* p) {
                  do_wmf_record(AbortProcCode, (void*)p, 0);
              }

      and then modified do_wmf_record to add this case:

              case AbortProcCode:
                  AbortProc *fn = (AbortProc *)p;

      At no time did anybody think about the fact that if that code was imbedded in a WMF file, the same code would be executed, and with a pointer into the data in the file!

    16. Re:I don't buy the explaination by mlwmohawk · · Score: 1

      This is silly, as the API is documented, the metafile contains an address. Period. This true and this is how it is documented and this is how it works. There is no way that code, that is implemeted as documented, that reads 4 bytes out of a file, or memory buffer, or whatever, *can* confuse the indirection of a pointer in the way you keep insisting. I have been developing software using C or C++ for about 20 years now and I kind of know what I'm talking about.

      In the simplest terms, the metafile AbortProc tag data is an AbortProc *p, NOT an AbortProc p. One way works, one way simply does not. Just because you seem to be very confused about pointer indirection does not mean that the compiler would be as well.

      It is impossible to create one path of code that does both with the same execution strategy.

      If you disagree, try this:
      #include
      void foo()
      {
          printf("It worked\n");
      }
      typedef void (*myfn)(void);
      char buffer[4096];
      int main()
      {
          myfn bar = foo;
          (*bar)();
          bar = (myfn) buffer;
          memcpy(bar, foo, 200); // 200 bytes should be enough
          (*bar)();
      }

    17. Re:I don't buy the explaination by spitzak · · Score: 1

      If it is documented that way (ie that the WMF file contains a pointer to a function), then I believe you.

      However I'm not sure it is documented anywhere what is in a WMF file for SetAbortProc. What I think is that the behavior of the SetAbortProc function *itself* is defined, and they never thought about what would happen if the enumeration they used was imbedded into a WMF file.

      Do you have any pointers to contemporary documentation of the SetAbortProc? It would also help to have the same documentation to some function that takes a block of data where it makes sense to put the block into the file (such as "draw this block of text"). This will help to figure out what wording they use to mean things.

    18. Re:I don't buy the explaination by mlwmohawk · · Score: 1

      Sigh, yes, that *is* the way it is documented. If you would have only google'd for this information before you this exchange it could have saved a lot of time. What I saw as a misunderstanding was in fact merely someone not even educating themselves about the basics of the discussion. The Windows metafile format is old, really old, and there is lots of info available. Try google, it helps.

      Secondly, the fact still remains that you are totally confused about pointers. A function pointer holds an address of a function. A data pointer points to the location of data. There is an inherent indirection in a function pointer and it could not possibly be used in the same way for both a function pointer and the address of an actual function.
      Maybe you are not a C/C++ guy, but merely casting different pointer types does not invoke any extra functionality, It just tells the compiler how you want to use the value. You easily shoot yourself in the foot if you are even the least bit fuzzy about pointers. That's why the two different modes don't work. The compiler won't fix it for you and you'll crash.

    19. Re:I don't buy the explaination by spitzak · · Score: 1

      I have not seen any documentation that talks about SetAbortProc in any way other than as a function call. I still believe they were totally unaware that it could be parsed from a WMF file. Do you have any pointer to documentation that literally says "the SetAbortProc code is in the file, followed by 4 bytes that are the pointer".

      Also I can assure you that I do know C, and on Intel and almost every other modern architecture, a function pointer is a pointer to the first byte of the first instruction in that function.

  52. Re:I don't think many people too Gibson seriously. by m50d · · Score: 1

    I'm looking, just as I looked when he first said it. But Gibson's evidence was completely false, and without it the bug is no different from hundreds of bugs caused by ordinary incompetence all the time.

    --
    I am trolling
  53. I Heart Cliches by TubeSteak · · Score: 1
    From the sysinternals comments:
    Calling Microsoft incompetent over an old bug that never got fixed is easy, but it's slightly overblown. Let's not forget that this was a feature
    I love it when cliches come to life.
    To me this looks like Gibson actually stumbled on another bug in the same piece of code.
    To me this looks like Gibson actually stumbled on another feature in the same piece of code.

    ^Fixed that for ya^
    --
    [Fuck Beta]
    o0t!
  54. Re:Always picking no Windows... its better then li by ethanrider · · Score: 1

    Since I happened to reply to this post a while back, here's your link

    http://science.slashdot.org/comments.pl?sid=165215 &cid=13786646

    Interestingly, as I pointed out before 100% is > 1% it's not like continuing to have > 1% of a market is bad.

    --
    ACMD eht detaloiv evah uoy ,erutangis siht no noitpyrcne eht gnikaerb yB
  55. Re:I don't think many people too Gibson seriously. by Anonymous Coward · · Score: 0

    Mod this guy up!

    - It's clearly a back door, it looks and acts like a Back Door, therefore, it is.
    - Is it an INTENTIONAL back door?
    Hopefully, no.

    But, this does bring up the sheer lazyness of the MS group.
    New functionality should have gone into a NEW API, with no "Legacy" code inside the function.
    Today, that's called ReFactoring. In 1995 that would have just been Good Coding Practice.
    All of the legacy code should have been retired when it's functionality was.

  56. Possible reason for Microsoft creating a backdoor by Anonymous Coward · · Score: 0

    There is a clear reason why Microsoft might want to create a backdoor in its operating system. Microsoft was a proponent of UCITA, including its provision allowing "self help", i.e., under certain legal conditions, and in the case of a contract dispute, a licensor could break into a licensee's machine and disable the licensor's software. (The term "self help" is adapted from the legal terminology related to automobile repossession.) UCITA was enacted by two states and the enactment effort, while relatively dormant, is not dead.

    If the licensed software is an application program, it is difficult or impossible to break in without being allowed to do so by the operating system. This means that Microsoft would have to be involved in some way in any "self help" effort by a licensor for an application residing on a Microsoft platform. That gives Microsoft reason to create a backdoor, preferably in some operating system function that is likely to be available for entry when the "self help" effort is attempted.

  57. credulity is amazing by twitter · · Score: 1
    If they wanted to download some stuff to my PC and execute it they could distribute it as an update. They could add the code to IE or the kernel. This is one of the dumber conspiracy theories I have read.

    So, you think that M$ can and have put backdoors into your system but you still use it? Now that's dumb. Who needs conspiracies when everyone accepts their reasoning as good business practice? Here's a little refresher on what backdoors are all about.

    The reasons for backdoors is so that you and your friends can access the target. There's plenty of circumstantial and other evidence of the US government demanding such access to computers in general. This should not be surprising in light of DOJ and FBI wiretapping demands and a long standing history of domestic spying abuse. There are many well documented cases of security being less than advertised by zero padding and other nonsense like that. I also know of people who claim they got out of business when approached by government representatives who demanded such access to their software. Closed source software conceals such garbage.

    The only software you can really trust is the kind you can inspect and build yourself. If it matters, you should not run anything else.

    --

    Friends don't help friends install M$ junk.

    1. Re:credulity is amazing by terjeber · · Score: 2

      So, you think that M$ can and have put backdoors into your system

      Did I say that? I can't remember saying that I think M$ has put backdoors in my system. I was just saying that they can, easily. Would they? Probably not. They would be stupid to. As with most conspiracy theories this doesn't take into the account the simple fact that in any sizable organization, CIA included, you simply cannot keep secrets for that long.

      If M$ put backdoors in their systems employees leaving M$ for one reason or another, would sooner or later tell the world. Having as many employees coming and going as M$ has makes this every bit as safe as the checks you "automatically" have in Open Source.

      but you still use it?

      I am not, as seems to be the case with a lot of Linux advocates (to the strong detriment of Linux may I add) religious about what Operating System I use. I have two desktops, one for Windows XP and one for Linux (currently running Fedora, but that changes regularly). I also have a laptop that dual-boots into Linux. I use Linux for most of my work stuff, and I use Windows XP for most of my home stuff which mainly includes video editing.

      I'd use Linux for video editing too if there was a decent "prosomer" editing app for it, but there isn't, not even close.

    2. Re:credulity is amazing by terjeber · · Score: 1

      So, you think that M$ can and have put backdoors into your system but you still use it?

      Just to do another follow-up to this one. Anyone who make closed-source, commercial or not, software can add malicious features to it by design. Going by your question above, do you use absolutely no closed-source software? If you don't, is that because you are afraid that They have put spyware in it? Is your tin-foil hat comfortable?

    3. Re:credulity is amazing by Anonymous Coward · · Score: 0

      While we're at it, anyone who doesn't allow detailed inspections of their fab plants can add malicious features to their microchips...

  58. Whah whah whah whaaaaaah by ajs318 · · Score: 2, Interesting

    What else is there to say? It's a bit of legacy code left over from the days when it was safe to assume that any code on a computer had been put their with the owner's knowledge and consent. That assumption has since been invalidated by subsequent events. A backdoor it may be -- but when it was put there, there used to be a fence around the back garden.

    And this is just one example of a whole class of things that are really, seriously, terribly wrong with Windows {and for that matter, closed-source software in general}. A lot of benign application software has come to depend on behaviour in the operating system that ought never to have been allowed in the first place -- behaviour that makes the propagation of viruses and worms so much simpler. Now, if Microsoft change the way Windows works so as not to just hand out permission for any process to interfere with any other process, then the worms and viruses that depend on this behaviour will die off -- but so will all those applications that depend on this broken behaviour. Then what used to be a choice between "Stay with Microsoft, and all your old software will still work like it did before" and "Leave Microsoft, and none of your old software will work anymore" becomes one between "Continue to splash out good money after bad to Microsoft, but none of your old software will work anymore" and "Wave goodbye to Microsoft, none of your old software will work anymore but there are better-than-adequate replacements for all of it".

    And my prediction? A company that still makes extensive use of an obsolete software product will find themselves -- and their precious data -- orphaned as a consequence of the switch to Vista. They will have to obtain a pirated copy or copies of an earlier Microsoft OS {because there is no way to obtain a legitimate one} just in order to read their own files. This will only be discovered in a Licencing Gestapo bust.

    --
    Je fume. Tu fumes. Nous fûmes!
    1. Re:Whah whah whah whaaaaaah by Sigma+7 · · Score: 1
      Now, if Microsoft change the way Windows works so as not to just hand out permission for any process to interfere with any other process, then the worms and viruses that depend on this behaviour will die off -- but so will all those applications that depend on this broken behaviour.


      If Microsoft did that, it would be a hell of a lot more difficult to debug applications. It would bring things back to the "core-dump" era where core files had to be manually inspected as opposed to just loading up the debugger.

      What you really mean is the ability to segregate user accounts from each other. Windows has already done this - and most serious business class software has to be written to take this into consideration (otherwise, they are classed as defective and get no sales.)

      Also, Worms don't depend on that kind of behavior - most of them attract the "click-on-everything" crowd that can't even play a simple game. Viruses do, but they could just as easily attack a computer at the most vulnerable state - when it is booting up. Most people will laugh when I say that a boot sector virus can exist on a CD-ROM.
  59. Re:I don't think many people too Gibson seriously. by typical · · Score: 1

    AFAIK, the Wine people probably know about a lot of things in Wine that aren't securely designed. Doing secure software design is hard even for simple software, and when someone else has already done the design and you're worried about trying to make (often broken) code written to their design work under your system, it's not so obvious.

    That being said, I'm not saying that I couldn't see them raising it, but it's not as if they were proposing designs and some guy was pointing out security holes in the designs, either.

    --
    Any program relying on (nontrivial) preemptive multithreading will be buggy.
  60. Re:Always picking no Windows... its better then li by kc0re · · Score: 1

    How do I get Quake 3 to run on a Mac? OMFG! LOLZ!!!

    1)Put in CD
    2)Double click on CD that is mounted and appears on Desktop
    3)Drag executable from CD to Applications Folder
    4)Drink a beer.

  61. Great! by Anonymous Coward · · Score: 0

    I'm glad this has turned out to be an exploitable design flaw (that ignores firewalls and anti-virus protection), rather than a deliberate backdoor.

    Such wonderful news has renewed my faith in Microsoft.

    1. Re:Great! by Anonymous Coward · · Score: 0

      Does a backdoor have to be deliberate ????

      Since when???

      Bullshit. Gibson was right.

    2. Re:Great! by Anonymous Coward · · Score: 0

      Yes, I'd say a backdoor has to be deliberate.
      It's intentional and hidden by the software writers, rather than an accidental flaw.
      It is possible to use an exploit or flaw to gain access to a computer and create a backdoor (ie replace the login code so it will always work with a certain password), but you didn't get access by a backdoor in the first place.

      The meaning of 'backdoor' has got a bit lost, like the 'hacker/cracker' definition. It does have a specific meaning though, otherwise why is Steve Gibson's statement more controversial than the everyday reporting of a Windows flaw?

  62. a method to implement backdoors. by sirius74 · · Score: 1

    cant poor design be a way to code backdoors?

  63. Re:I don't think many people too Gibson seriously. by Anonymous Coward · · Score: 0

    Gibson is a hack - nothing more, nothing less. Remember his famous "raw sockets" tirades. He said the whole Internet would collapse when Microsoft released Windows XP. So much for that. I must say, however, his tirades over BlackICE were some of the funniest. He misused a product and then claimed it to be faulty. When asked to explain his results and tests, he shreeeked how he wouldn't listen to anybody else - he was a scientist. Any scientist who refuses to listen to opposing ideas, is not a scientist.

    Also, don't forget, Steve is a MARKETING person first and foremost. He has never had a technical job in his life. He has NO formal training, certifications - nothing. And I have NEVER seen him publish anything to any security group or magazine. This guy is to be ignored.

  64. Re:I don't think many people too Gibson seriously. by pjbgravely · · Score: 1

    Steve Gibson thought it was a backdoor because he believed that the flaw really only existed since NT 5.0, when it seemed to him the code was changed. Unless you believe NT 5.x is not network ready then your first paragraph is untrue. This point was not made in the article. The transcript of what Steve actually said. I am not saying I think he was correct but just setting the record straight

    --
    Star Trek, there maybe hope.
  65. Re:I don't think many people too Gibson seriously. by khallow · · Score: 1
    You've never had a security flaw in your code? It's an *accident*, the same as when the postman falls over and breaks your parcel. Oh wait, I forget, in America there's always someone to sue.

    So who shares responsibility with MS over accidents? No one. There's no one else to blame. As mentioned before, MS is responsible for its code, so it shoulders sole blame for accidents in its code. Not "some" of the blame. All of it.

    Having said that, shouldering the sole blame for a bug seems pretty minor. MS releases a fix and that's that.

  66. Ok, not a backdoor, but one question remains by Opportunist · · Score: 1

    So it's an ancient, outdated function that's no longer really viable or necessary.

    I tend to stick to the KISS principle: If it's outdated, unnecessary and a now proven point of attack, why not remove it?

    --
    We used to have a Bill of Rights. Now, with the rights gone, all we have left is the bill.
  67. Re:This is where being able to see the source help by cnettel · · Score: 1

    This would be true, if you avoid the fact that Steve Gibson take pride in coding his Windows apps in assembler. The normal release-compiled assembler x86 isn't that hard to grok, if you really claim to be a wiz at decoding it yourself. The debug symbols are out there for you to grab, too, so you get it nicely split up into functions.

  68. Re:I don't think many people too Gibson seriously. by Minwee · · Score: 1
    "Microsft deserves all the blame for this - they're responsible for the bad design, the bad implementation and the lax audit. Suggesting they only deserve a portion of the blame shows your bias."

    You may want to read this article next time you fill up your bucket with tar and start stripping the feather dusters. Throwing blame around doesn't help anyone, and only shows your own bias.

  69. Re:I don't think many people too Gibson seriously. by Anonymous Coward · · Score: 0

    Well, forgive me if I don't trust some MS shill posting anonymously on slashdot

    YOU DON'T HAVE TO. The point was that Russinovich made the same point, you can look it up in TFA yourself. If you disagree with it, fine, but then let's be clear that you're not only disagreeing with "some MS shill" (what a ridiculously flamebaiting designator), but with Russinovich as well.

    MS deserves some blame? Who else should we blame? The wine group? Mark? Steve Gibson? Slashdotters?

    Not surprisingly, your semi-autism prevents you from reading that sentence the way any reasonable person would read it. Namely, that MS should be blamed, but that their mistake wasn't as severe as implied. You shouldn't read it to say that someone else deserves the blame they don't get, as if the amount of blame assigned is always some constant amount. "Some blame" obviously refers to "a portion of the blame you're ready to dish out" in this context.

    Suggesting they only deserve a portion of the blame shows your bias.

    You're such an idiot. I really mean that.

  70. Re:I don't think many people too Gibson seriously. by tedgyz · · Score: 1

    Gibson is a crackpot.

    I gave up listening to him when I read his conspiracy theory for S.M.A.R.T. hard drives. Gee, so S.M.A.R.T. makes his software obsolete? Sounds like a marketing tactic.

    --
    "No matter where you go, there you are." -- Buckaroo Banzai
  71. Re:My question by symbolic · · Score: 1


    I'm not sure I even care if it is a back door, so much as I care if it can be used as a back door. If the answer to the second circumstance is "yes," then it would seem that what we're seeing in this debate is little more than semanting quibbling.

  72. Of Course It's Not by xrayspx · · Score: 2, Insightful

    But it succeeded in getting people to see the name Steve Gibson on a website again. From the plagarizer of SynCookies, the father of Raw Sockets paranoia, comes a new wild and unfounded allegation, WMF bugs put there intentionally to let Microsoft SPY ON EVERYTHING YOU DO OMGWTF!

    I can't believe people on the last thread actually took him seriously without looking at his past media whoring failed attempts at security analasis.

    Steve Gibson is the Bob Lazar of the security field, only wackier.

  73. Re:I don't think many people too Gibson seriously. by squiggleslash · · Score: 2, Insightful
    The design has been in the system since the late eighties. It's arguable "the code changed" with NT5 (I don't have enough information to hand to comment), possibly in a way that magnified a small flaw into a major one, but it's absolutely true we're talking about a prehistoric feature, designed at the time Windows machines were largely standalone, and any changes with NT5 would have simply been consequences of the insecure nature of the 1980s design, not some extra code inserted into NT for no apparent reason whatsoever.

    We're talking here about a file format designed in the late eighties, based upon the original Win16 API, with support for callbacks, designed then, not in 1999, to be written in 80x86 assembly language. You bet implementing that in a modern OS would cause security problems. We can be armchair operating system designers here and say that Microsoft should have adopted something more akin to EPS, complete with sandboxed programming environment, back when it became viable, but it's one thing to say "Microsoft, you suck!", it's another to claim they're Sonying our machines.

    If I had to find a paranoid, Microsoft is evil, reason for this, I'd say follow the anti-trust behaviour trail. They continued to support, and encourage the use of, a major file format with a key feature couldn't be fully supported on any operating system that didn't implement a significant part of Win16? I wonder why that would be!

    --
    You are not alone. This is not normal. None of this is normal.
  74. Re:I don't think many people too Gibson seriously. by Jerrry · · Score: 1
    It looks to be the popular slam of the day to attack Gibson over this.
     


    I disagree. Look at the differences in style between the write-up on Gibson's web site and the article by Russinovich. Mark's article analyzes the technical issues and calmly points out what probably resulted in this vulnerability without making ridiculous claims--Gibson's site, on the other hand, spins all sorts of conspiracy theories and tries to make him look like a hero for "discovering" this evil deed perpetrated on us by Microsoft.

    Look at some of the other things Gibson has done over the years and in the responses to it you'll see much more valid criticism than slams.

  75. Re:This is where being able to see the source help by EXMSFT · · Score: 1

    Source is moot in this argument, as it was not used by either person. Mark does not have source code access - the poster who stated otherwise was incorrect.

  76. Gibson Replies to Russinovic(Sp?) by Anonymous Coward · · Score: 0
  77. Am I the only one who cringed when they read.... by achesterase · · Score: 0, Redundant

    the word scientificAL?

  78. Re:I don't think many people too Gibson seriously. by m50d · · Score: 1
    Having said that, shouldering the sole blame for a bug seems pretty minor. MS releases a fix and that's that.

    That's the point. It's "some blame" because there isn't much blame, not because it's only a small point of the blame. Wheras if it were a deliberate back door, MS would deserve a lot of blame.

    --
    I am trolling
  79. So Gibson CALLED it wrong, Microsoft GOT IT wrong by Locutus · · Score: 1

    who is REALLY is responsible for this flaw? I don't think Steve Gibson created this thing and IMO, he thought he was exposing something which looked pretty much like it had to be intentional. And without the code to see how this software REALLY worked, his conclusions were correct based on the data he had.

    Now, back to who is really responsible. It's Microsoft period. Even after they claimed to have rewritten there OS's after every other release, a hole the size of Kansas was left in since the early 90's? Come on, they didn't know that allowing executable code in a multimedia file format was a security risk?

    IMO, if you trust Microsoft for YOUR computing systems, you should be feeling pretty naked right now.

    LoB

    --
    "Anyone who stands out in the middle of a road looks like roadkill to me." --Linus
  80. it's not flawed!!! by Dukhat · · Score: 1

    The WWF is not flawed! oh, wait, you said WMF.

  81. Re:I don't think many people too Gibson seriously. by electroniceric · · Score: 2, Informative

    Another thing this points out is just how much Microsoft resists open standards. As far as I can tell, the chief reason WMF was and is still widely supported in Windows is that it effectively emulates vector graphics. How many opportunities did Microsoft turn down to put in SVG, PDF, or similar support?

  82. Why no check of user code? Sociology. by Futurepower(R) · · Score: 4, Interesting

    The sociology of this is more interesting than the programming details, in my opinion. It often happens that one person in the computer industry analyzes an abuse, and another person, who is competing for attention, attacks the first person. Admittedly, Steve Gibson of grc.com has a flawed, exaggerated manner of communicating. But many abuses never are fully recognized because technical people attack each other, rather than analyze carefully how they are being abused.

    As others have mentioned in comments I have excerpted below, the U.S. government stated clearly and for the record that it wanted access to all computers. It appears that the government got what it wanted in what I think I can show logically is the only way possible.

    Mark Russinovich of SysInternals is an extremely competent programmer. His utilities for Windows are the best available. Even Microsoft recommends using them, to supplement the limited and unfinished and flawed utilities supplied with Windows. However, Mark Russinovich is not a sociologist, so his comments may not take into account the complexities of the social issues.

    The main issue seems to be, not that graphics files have the ability to execute code, but why was there inadequate testing in the code to prevent security vulnerabilities?

    Here are quotes from Mark's article:

    "The actual reason is lost with the original developer of the API, but my guess is that he or she was being as flexible as possible."

    And: "... given a choice of believing there was malicious intent or poor design behind this implementation, I'll pick poor design. After all, there are plenty of such examples all throughout the Windows API, especially in the part of the API that has its roots in Windows 3.1. The bottom line is that I'm convinced that this behavior, while intentional, is not a secret backdoor."

    Mark's perception of Microsoft's sloppiness seems correct to me. I coded a program for Windows 3.1 using the Windows 3.1 API that dialed to a bulletin board and downloaded stock quotes. I was amazed at the extreme sloppiness and bad design of the Com port API. The actual code that Microsoft shipped had the quality of code that I would expect from an overtired programmer's first draft. A rested programmer would not have been so sloppy, even in his first proof-of-concept code.

    Quotes from the comments:

    "Thanks for this excellent analysis! Steve Gibson certainly does not deserver to be taken seriously by anyone, but unfortunately he is :-("

    This is a reference to the fact that Gibson's language often contains a hysterical, exaggerated quality.

    Another comment -- This commenter makes the point that Microsoft had hired a technically knowledgeable top manager, who would certainly demand that programmers check the security of any code that is supplied by a user:

    "Q: When was this backdoor coded?
    A: About 1992.
    Q: How old was VMS at that time?
    A: 15 years.
    Q: Who directed the development of Windows NT?
    A: Dave Cutler.
    Q: What's Cutler's background.
    A: Directed VMS at DEC.
    Q: On who's watch was this security lapse ported into the Windows NT stream.
    A: Presumably Cutler's.

    While anything's possible, it's hard to imagine how a security lapse of this magnitude (trusting user-written code) could have made its way into VMS code.


    "The point is that Stephen Toulouse's "the security landscape in the early 1990's was very different than today" is, well, self-serving. Only in MS's myoptic view is this the case."

    Another comment:

    "Now that I think about it, even Mark has to guess at what some coder was thinking when she wrote this, and maybe she did it intentionally. You'll never know will you? Maybe somebody's been watching all of us for years, and it ends up in some massive NSA database."

    An

  83. It does matter (was Re:it doesn't matter) by mysticgoat · · Score: 3, Informative

    Conspiracy theories don't need reasons backing them up.

    There is no way to disagree with that, if one accepts the anthropomorphism. s/theories/theorists/ would make this a stronger statement.

    But whatever... At the time this particular exploit was introduced into Windows, there was definitely a conspiracy within Microsoft that involved at the very least mucking about with the documentation of the Windows API.

    One of the reasons that Win30 and Win31 succeeded in capturing the market so quickly was because MS made the Windows API available to application competitors, notably Quattro Pro, then from Borland, and WordPerfect, then from WordPerfect. MS presented Windows as being a Good Thing for the entire software industry and got a lot of needed buy-in on that basis. During the development process for Win31, it was highly significant to the marketplace that Borland, WordPerfect, and other industry leaders of DOS software were writing native Windows versions of their applications, and urging their customers to upgrade from the DOS versions to the Windows versions. (The DOS versions ran better under OS/2 than they did under Windows since OS/2 had preemptive multitasking; moving the market to Windows versions of these products was critical to MS if Windows with its cooperative multitasking was going to survive the OS/2 challenge).

    But MS wasn't playing fair: when Win31 came out, Excel and Word danced rings around Quattro Pro and WordPerfect. And when people started to look at how MS was able to get such better performance out of the same API, they found that the MS application coders were not using the same API at all: they were relying on undocumented features and features that were documented in misleading ways.

    This and similar shenanigans from MS are matters of historic record, vetted by the courts. There can be no question that MS is a company that has used conspiracy tactics to gain market share. There can be no question that MS was doing this at the time it implemented the WMF structure under Windows.

    Where does the WMF vulnerability fit in, in light of this background? Obviously it was not written initially as an internet backdoor.

    But consider an MS application that used a trademarked WMF graphic on its splash screen. That graphic could run a small bit of code that would unlock hidden capabilities in the Windows API. For example, it could set DEBUG=TRUE in some low level part of the task scheduler, turning off chunks of code that other applications would have to wade through, and thus making the MS app so much more efficient in a way that would be undetectable even on dissassembling the code. There is no technical reason why the WMF vulnerability could not have been used in this way. There is no question that the MS corporate culture of that time would have celebrated and rewarded this kind of cleverness. In view of this background, and the fact that this vulnerability managed to survive the intense scrutiny of several major code revisions, the only reasonable assumption is that the WMF vulnerability is a deliberate backdoor and has been kept around because MS has thought it would be useful to them.

    MS has always been a company that has put more value on cleverness than on ethics.

    So the questions now are what has MS used this backdoor for, and what has been their plans for future use? Anyone who has used a Windows machine recently should be wondering what information MS has gathered from them and what MS is doing with that information-- the ability to swap a keyboard logger in and out as different graphics or icons are presented while an application is running is a disturbing thought.

    I continue to think that there is cause here to consider a Grand Jury investigation. I don't see any other way in which MS employees could demonstrate that their unethical business practices haven't transgressed over the fine line and become criminal behaviors.

    1. Re:It does matter (was Re:it doesn't matter) by dunng808 · · Score: 1
      Thank you for making the connection between the WMF vulnerability and the Windows undocumented API mess. Of course, the API issue was just one of many. Remember how Windows Media Player would silently cripple Real Networks player? Or how Kodak sued over the digital camera plug-n-play response?

      As I recall, and these old brain cells are starting to fail, the undocumented API mess began before Windows was out, back in the DOS days. There was at least one book devoted to the topic, Andrew Schulman's Undocumented DOS, published in 1990. And a related issue was how to make re-entrant pop-up applications, like Sidekick.

      This road of bad behavior is long. I agree that when Windows first came out Microsoft worked hard to help programmers migrate their applications, and that the cheating began when Microsoft entered the application field with Excel and Word. I wonder how many readers are too young to know these stories?

      --

      Gary Dunn
      Open Slate Project

    2. Re:It does matter (was Re:it doesn't matter) by Anonymous Coward · · Score: 0

      But MS wasn't playing fair: when Win31 came out, Excel and Word danced rings around Quattro Pro and WordPerfect. And when people started to look at how MS was able to get such better performance out of the same API, they found that the MS application coders were not using the same API at all: they were relying on undocumented features and features that were documented in misleading ways.

      Those were the accusations levied by WP et al. To this date, I have not seen one piece of evidence supporting those accusations.

    3. Re:It does matter (was Re:it doesn't matter) by mysticgoat · · Score: 1

      To this date, I have not seen one piece of evidence supporting those accusations [of MS using undocumented API features to obtain a market advantage for Windows].

      To be honest, I haven't seen ANY of the evidence that was brought to court in the Microsoft trials. I have simply taken the word of others that the MS conviction was indeed based on evidence.

      And to be totally fair, the prosecutors at MS antitrust trials chose to use a different argument to demonstrate MS's illegal, monopolistic business practices, iirc. And since MS settled the civil claims out of court rather than allowing its internal practices to be put in public view, I suppose we'll never know just how strong Borland's or WordPerfect's evidence was. We can only surmise that the evidence they held was strong enough that MS preferred to pay them off rather than allow the world to see the truth.

      I do have a copy of Undocumented DOS stored away somewhere-- it is pretty dog eared because I used it a lot back in the day. Even when just writing DOS batch files, I found it very useful to use the same tools that MS programmers used, rather than the weaker tool set that carried MS's "Official" label. It really wasn't hard for any of us back then to recognize what MS had done with the Win3.x API: we had been seeing this behavior in their DOS products for several years.

      Corporate policy makers at Microsoft have a long history of making a very fine distinction between what is criminal and what is simply unethical. I really do think that it would be a good idea for a Grand Jury to investigate whether the Microsoft policy makers have always drawn that line in the right place. Purposefully perpetuating a backdoor into Windows that could be used to install a keyboard logger is at least criminally negligent, on the face of it. In all the banter of whether this and how come that, let's not lose sight of that fact.

    4. Re:It does matter (was Re:it doesn't matter) by EddWo · · Score: 1
      The Novell Suit over WordPerfect is pretty specific about which API details were withheld from them during the development of their Windows version.

      See Novells Complaint from page 44

      I'm not sure how far this suit has progressed, but it would appear that at the time Microsoft made specific documentation available to ISVs on a case by case basis depending on how much of a threat the ISV represented to them.

      According to the document Microsoft refused to include the specifications for using the windows Dialog Box Manager, a feature that is now fully documented on MSDN and seems to be regarded as ancient history by Windows developer Raymond Chen.

      If such a major chunk of functionality was really initially reserved for MS Applications it would seem as though the Novell case couldn't fail to succeed. My guess is that they will end up settleing for some vast payout and the whole issue will disappear.

      --
      "Taligent is still pure vapor. Maybe they'll be the last who jumps up on Openstep... "
  84. Intentional backdoor through API? by twohorse · · Score: 1
    Its seems clear that Microsoft could easily ship an O/S with a deliberate backdoor or with an update, but that would obviously have huge ramifications for them if confirmed.

    Tinfoil hat time, considering WINE had the same WMF vulnerablility implementing the Windows API, wouldnt it make more sense to design an API with subtle flaws if you didnt want to get caught putting it in deliberately?

  85. Re:I don't think many people too Gibson seriously. by Locutus · · Score: 1

    What I'm not seeing in these discussions is the fact that what Steve Gibson found was very poor coding which resulted in executing code stored in a media file. A simple check of the illegal header size value should have rejected the media file but instead, it went ahead and adjusted some pointer which resulted in executing code.

    There are really two issues here. One is that the WMF spec allows for executing code stored within a WMF file and secondly, the fact that an illegally constructed WMF file( bad length value in WMF header ) also results in code executing from whithin the WMF file.

    So while it was already out that the WMF spec was flawed, Mr Gibson found that Microsofts coding tactics and security reviews did not find this 2nd way to get code executing in WMF files.

    Regarding WINE, we seem to know that WINE does follow Microsofts spec on how WMF files operate, but did they also code the loading of the WMF file such that an illegal length value causes/triggers the vulnerability? I find it interesting that people seem to be brushing over what Mr Gibson found by describing so much of how the original flaw operates and all but ignoring what he was really exposing. ie. the dumbass way Microsofts coders didn't check for valid data structures in the WMF file.

    LoB

    --
    "Anyone who stands out in the middle of a road looks like roadkill to me." --Linus
  86. How did it get into wine? by Ayanami+Rei · · Score: 1

    Simple.
    The code for winevdm (Win16 layer implementation) traces it's existance back to the days before windows 95 (!)
    It implements a function called WOWCallback16Ex which executes 16-bit code passed in an array parameter. Normally you can't do stuff like that in linux, but winevdm uses the special features of 32-bit x86 processors to put the process in vm86 mode where you can do pretty much anything.
    This was used to implement a lot of the callbacks in Wine's 16-bit GDI layer... support for 16-bit printer drivers in Wine was top notch :-P.
    Anyway, the WMF file interpreter, when it finds this SETABORTPROC, (correctly) ends up calling WOWCallback16Ex with stuff fed in from the WMF file when it calls the EndOfPage function.

    Three notes:

    1) It's difficult to "break out" of winevdm and do stuff outside of the wine 16/32-bit APIs unless you know this WMF is going to be running in wine. Code that would work in windows to break into 32-bit mode in that context and do bad stuff to the system will fail spectactularly (read: Segfault)

    2) It doesn't work at all on Opteron/EMT64. There is no vm86, thus no winevdm, thus no 16-bit GDI support.

    3) They fixed the bug. Which was to not allow WMF read from the disk to ever contain anything that can eventually be fed to a calback.

    Just two seperate bits of code written long ago, following the MS required behavior to the letter, that were never imagined to be joined.

    --
    THIS THING CAN TURN ON A DIME, MACROSSZERO STYLE ALSO FUCK BETA, ~NYORON
  87. Re:I don't think many people too Gibson seriously. by khallow · · Score: 1

    Ok. Carry on then.

  88. MOD PARENT UP by benzapp · · Score: 1

    This is an excellent post, the best in this entire discussion. Everyone hates microsoft today of course, but their predatory behavior was far, far worse in the early 1990's.

    --
    I don't read or respond to AC posts
    1. Re:MOD PARENT UP by buck_wild · · Score: 1

      "...their predatory behavior was far, far worse in the early 1990's."

      Sure...that we KNOW of. Perhaps they're just more clever these days. *evil chuckle* *evil laugh* coughCOUGHcough! ahem *evil chuckle*

      --
      If all you have is a hammer, everything looks like a nail.
  89. So, we all really believe Windows lacks a backdoor by wernst · · Score: 1

    So, just so that we're all on the same page...

    Do we all really beleive that there's no backdoor in Windows XP?

    Or just that the WMF "problem" isn't it?

    Frankly, I'd be shocked if Microsoft didn't insert a backdoor into Windows somehwere. Apparently, the Chinese were woried enough about this very problem that they set up a program to look things over, and they're still looking into Windows alternatives.

  90. Re:I don't think many people too Gibson seriously. by BeBoxer · · Score: 2, Insightful

    [i]I would have assumed that computers in five years time would be using real-time EPS (that's embeddable PostScript, the initials standing for Encapsulated Post Script, for you young'uns, that's what we were all talking about then as being the future of vector formats)[/i]

    And lest everyone forget, the PostScript language includes file operation commands (reading and writing). Which of course could be use for all sorts of nastiness by overwriting various important files (.login, .rhosts, authorized_keys, .Xsession, etc.) It wasn't even all that long ago that support for those commands was removed from ghostscript and it's decendants (xpdf, etc.). But last I checked, nobody has accused Adobe of trying to backdoor all of our computers.

    Or a number of standard Unix terminal emulators which have had some pretty iffy functions added to them which can lead to system compromises: TERMINAL EMULATOR SECURITY ISSUES. Has anybody accused Rasterman (or whomever wrote Eterm) of trying to backdoor everybodies computer? Of course not.

    What's my point? I don't know. Maybe that, as much fun as it is to kick around Microsoft for dangerous programming choices, they aren't the only ones to design systems and API's that have holes. In hindsight, both the PS and terminal issues I mentioned above are pretty obvious. I mean, slap your forehead obvious that you probably shouldn' do that. But they did.

  91. WINE does NOT have flaw found by Steve Gibson by Locutus · · Score: 1

    Sorry for the reply to my own post but I just ran Steve Gibsons test app on an earlier version of WINE( 06/28/2005 ) and it does not have the illegal WMF header structure flaw.

    So while the WINE people implemented Microsofts WMF Spec correctly, it appears they did NOT follow Microsofts practice of allowing an invalid WMF file to continue on and implement/execute the SetAbortProc vulnerability.

    LoB

    --
    "Anyone who stands out in the middle of a road looks like roadkill to me." --Linus
    1. Re:WINE does NOT have flaw found by Steve Gibson by man_of_mr_e · · Score: 1

      Actually, they did. No, Gibsons's original exploit didn't work, but he later modified it in a way that it did work. You can find the code here:

      http://www.grc.com/x/news.exe?cmd=article&group=gr c.news.feedback&item=60751&utag=

    2. Re:WINE does NOT have flaw found by Steve Gibson by Locutus · · Score: 1

      Sorry, that URL is invalid so I can't test that particular executable, but I did find his new "MouseTrap.exe" WMF vulnerability test. The point I still want to make is that the original KnockKnock.exe test did not work on WINE. This program used the len==1 problem Windows has with not testing for a valid WMF file and then continuing on with the bad WMF file and immediately starts executing code in the WMF file. Mr Gibson found this flaw when first attepting to create a test program to see if the original WMF exploit was there. He uncovered the fact the Microsoft engineers didn't test the WMF header size for invalid sizes...

      I did run the MouseTrap.exe test and though I did not find anywhere that it tested the len==1 issue, it is said to be designed to test the WMF vulneability with regards to executing code in a WMF file( the SetAbortProc issue ) and it does validate that an older version of WINE has this flaw. Unfortunately, this is not related to the point I was making since we already know WINE had the original WMF vulnerability.

      LoB

      --
      "Anyone who stands out in the middle of a road looks like roadkill to me." --Linus
    3. Re:WINE does NOT have flaw found by Steve Gibson by man_of_mr_e · · Score: 1

      Gibson admits he was wrong about the length=1 issue. His problem was that his test metafile only had one record, and Windows deliberately doesn't call SetAbortProc on the last record (in his case, the only record) because there's no reason to cancel a single record. His exploit only works by fooling Windows into thinking there are more records.

    4. Re:WINE does NOT have flaw found by Steve Gibson by Locutus · · Score: 1
      Here I go again, replying to my own message but since someone already showed that they don't get my point, I'll show the code I found in WINE to show that WINE does test for 'len equal to 1' backdoor execution and does NOT erroneously continue on. I looked at the code from metafile.c and it tests the size value in the header for a valid size.

      it first sets the varible 'size' to the size of the METAHEADER structure, allocates some memory before it reads that many bytes of the MWF file:

      METAHEADER *MF_ReadMetaFile(HANDLE hfile)
      {
              METAHEADER *mh;
              DWORD BytesRead, size;
              size = sizeof(METAHEADER);
              mh = HeapAlloc( GetProcessHeap(), 0, size );
              if(!mh) return NULL;
              if(ReadFile( hfile, mh, size, &BytesRead, NULL) == 0 ||
                    BytesRead != size) {
                      HeapFree( GetProcessHeap(), 0, mh );
                      return NULL;
              }

        and later, after all the header data is read, it checks what the MWF said the header size is with what it should be( testing mtHeaderSize with the structure size/2 ):

      if (mh->mtType != METAFILE_MEMORY || mh->mtVersion != MFVERSION ||
                      mh->mtHeaderSize != size / 2)
              {
                      HeapFree( GetProcessHeap(), 0, mh );
                      return NULL;
              }


        It appears Microsofts coders did not do this test and that's how Mr Gibson originally got off on the track that it could be an intentional exploit. It is probably why Gibsons original test application( KnockKnock.exe ) did not show the WMF vulnerability in an older version of WINE. His new test app, MouseTrap.exe probably uses a valid WMF file to trigger the SetAbortProc processing and does test the original exploit functionality.

      LoB
      --
      "Anyone who stands out in the middle of a road looks like roadkill to me." --Linus
    5. Re:WINE does NOT have flaw found by Steve Gibson by Locutus · · Score: 1

      Wrong or not, it worked and it worked because Microsoft coders did not test for a valid WMF file. Mark even says so here:

      Steve's example WMF file contains only one record, the one that specifies SetAbortProc, so under normal circumstances PlayMetaFile will never call his abort procedure. The record sizes that he found trigger its execution cause PlayMetaFile to incorrectly increment its pointer into the WMF file such that it believes that there are more records to process, whereas the values he used that don't trigger the execution land it on data values that indicate there are no more records. So his assertion that only certain magic values open the backdoor is wrong.

      Maybe this isn't a big deal but it seems like it should be since Microsoft shot its mouth off saying Windows 2000 was the most secure Windows yet and they said they spent 3 months combing the source code for security flaws, blah, blah, blah. Now, not only do we find that there's a hole the size of Mt Fuji( WMF SetAbortProc vulnerability ) but even NEW versions of Windows( new code? ) are processing this ancient WMF spec and are not even checking for a valid file structure and the result is that it executes code when a particular value is used... geesh, "Trustworthy Computing"... Right.

      Now the result is that fixing the original vulnerability also fixes the secondary flaw, but WTF was that second issue/flaw doing in there after all these years? Atleast the WINE guys got it right and tested the header structure before running along and processing to Microsofts WMF specifications.

      LoB

      --
      "Anyone who stands out in the middle of a road looks like roadkill to me." --Linus
  92. Re:I don't think many people too Gibson seriously. by 10101001+10101001 · · Score: 1

    Until the late nineties, Microsoft was routinely making such errors, the most infamous being the support for embeddable, automatically run, Visual Basic scripts in Word documents. Why this is being treated as any different to every security error Microsoft has made in the past is beyond me.

    One, it took a lot longer to find. Two, it comes with every install of Windows. Three, generally Word document macro vulnerabilities were sent by email, not by simply visiting a website. Four, you're likely to notice a Word document openning, but you can easily hide a .wmf file in a webpage.

    Having said all this, I wouldn't jump to the conclusion it's a conspiracy. Nor is it radically different from the tons of other remote execution IE exploits, for most purposes at least, even though it's the wmf renderer that's responsible. I'd guess the main reasons for the hype is especially point one I mentioned, coupled with the fact that a 3rd party released a patch first.

    The truth is, I'd imagine 99.9% of people don't need WMFs--your analogy to Word auto-executed macro viruses is pretty spot on, since their usefulness is about the same, I'd say. So, even without a conspiracy, it's just another sign of MS including junk from the past without the proper security checks--obscurity of the problem doesn't make people who had their machines infected sleep better at night. There's simply a vocal minority who wishes MS would start from scratch with a sound design. If the obscurity of this problem isn't a sign that MS is pretty well lost to protect users while maintaining their quest for backwards compatibility, I don't know what will.

    --
    Eurohacker European paranoia, gun rights, and h
  93. Re:I don't think many people too Gibson seriously. by man_of_mr_e · · Score: 1

    You mean, their goal is to make Linux as insecure as Windows?

    Seriously, it would surprise the hell out of me if the Wine's team position on this was to favor compatibility over security. If that is indeed their position, then they should be keel hauled over it.

  94. Re:I don't think many people too Gibson seriously. by Reziac · · Score: 1

    "To believe this is a backdoor, you have to believe that people thought Windows computers were going to be hooked into a giant, international, network back in 1985-1990 (and that WMF and the 8086/x86 architecture would still be relevent by the time that network came into being.)"

    Exactly why I've been arguing against it being an "intentional backdoor":

    The internet as a popular medium didn't yet exist, and networking meant Novell, Lantastic, or mainframes, with DOS-only workstations.

    Not only that, but WMF was never a widely-used graphics format even in Win16's heyday. Even allowing for "file sharing" via BBSs, AOL, CI$, etc (themselves mainly using DOS-based, textmode interfaces), PCX was much more common, as it was far more compatible with the image-viewing apps of the day. WMFs were only routinely used by a few Win16 page-layout apps... itself a lousy vector back then, as most serious page-layout work was still done on Macs.

    As to maliciously hooking into WMF's other functions, such as printing aborts... well, you've still got the problem of getting past that air-gap firewall.

    In short, back when WMF was designed, first you couldn't get to the backdoor'd PC, then even if you do get there, hardly anything used WMF anyway. So how was this *useful* as a backdoor, even if it were designed that way?

    --
    ~REZ~ #43301. Who'd fake being me anyway?
  95. free is easy and better. by twitter · · Score: 1
    Going by your question above, do you use absolutely no closed-source software?

    Yes.

    If you don't, is that because you are afraid that They have put spyware in it?

    That's part one of the many disadvantages of software having owners.

    Is your tin-foil hat comfortable?

    Yes, much more so than most commercial software. You should try it out sometimes. Here's a distribution that autoconfigures, runs from CD, has a GUI install and comes with some commercial software, like flash and acroread, as a security blanket.

    --

    Friends don't help friends install M$ junk.

    1. Re:free is easy and better. by terjeber · · Score: 1

      Well, as I mentioned in my post. I currently run Fedora, not because I dislike Debian but because I work for a company that sells commercial software for Linux, and we have to standardize on a distribution. Company policy has decided that we standardize on Red Hat, and I use Fedora to see what is coming down the line... This means that from 7 in the morning until about 6pm I am mainly on Linux.

      Now, as I also mentioned in my other post, I use Windows XP for movie editing. My editing software is Sony Vegas. Can you please point me to equivalent software for Linux please? You know what ... don't even try to go looking, there isn't any. There is some professional rendering software etc out there, but no reasonable (user experience wise) editing software. Of course, I can spend a lot of time writing such a package, but I really don't want to, I just want to edit some movies. I have written enough code for fun in my life.

      So I keep religion out of my OS choice and use whatever is appropriate for the situation. For some reason a lot of people think that this is always Open Source, which is absurd.

  96. Re:This is where being able to see the source help by Anonymous Coward · · Score: 0

    Considering that WINE, an open source program, had the exact same flaw, I don't see how it would make a difference if the source was open or closed.

    Now if somebody saw the flaw in WINE first, maybe you would have an argument.

    You have to understand that seeing the source code is great, but not necessary to figure out what the code does. To somebody skilled in the art, a disassembler (particularly like IdaPro) creates source code -- just without all the comments and variable names.

    You know all those undocumented calls that MS got in trouble for having a long time ago? Those weren't discovered by somebody with the original source code, they were discovered by somebody looking at a disassembly in a debugger.

    dom

  97. In soviet russia... by Anonymous Coward · · Score: 0

    ...rootkit analizes YOU.

    1. Re:In soviet russia... by buck_wild · · Score: 1

      Funniest "Soviet Russia" comment in quite a while... But I'd rather post the kudos than mod an AC.

      --
      If all you have is a hammer, everything looks like a nail.
  98. Re:My question by Anonymous Coward · · Score: 0

    A back door is an intentional means of accessing a computer remotely by the party that installed it. A flaw that can be remotely executed to gain access to a computer is not a backdoor. There have been lots of vulnerabilities in both Windows and UNIX services that have permitted users to execute arbitrary code. They weren't backdoors.

    Steve Gibson claimed that Microsoft, or one of its employees, intentionally added this flaw to Windows for the purposes of gaining access to computers at a later point in time. That is a seriously outlandish claim, and refuting it is not semantic quibbling.

  99. In other news... by Anonymous Coward · · Score: 0

    cockup:
    52,800 results

    conspiracy:
    41,400,000 results

    So it MUST be a conspiracy!

  100. Re:I don't think many people too Gibson seriously. by Anonymous Coward · · Score: 0

    > Yeah, but let's be clear here: this wasn't obvious. If a similar bug went unseen in, say, XFree86/X.org for five years, there'd be no suggestion of a conspiracy.

    It's funny that you mention this. There is a serious 0day X bug right now. All unixes and all X implemetations are affected. Must be a massive conspiracy.

  101. Frack! WINE does HAVE both flaws... by Locutus · · Score: 1

    Geesh, the problem is not with loading the WMF file but with breaking it into records and "playing" the individual records in the WMF file... I thought was the former and saw tests around that size thinking all was good in WINE land. I was wrong.

    With regards to WMF records, it appears WINE does have the same flaw Windows has in that it only checks to see if the record size is not zero before using the invalid size to create an illegal pointer and calling PlayMetaFileRecord...

    So it looks like the Wine guys also brushed over WMF structure testing just like Microsoft coders did... Now I wonder what Steve Gibsons KnockKnock.exe tested and why it said WINE didn't have the flaw.

    LoB

    --
    "Anyone who stands out in the middle of a road looks like roadkill to me." --Linus
  102. Article Title Needs Amendment (et. Al.) ... by Zero__Kelvin · · Score: 1



    First, I would like to point out that the article is titled "IT: WMF Flaw not a Backdoor", which is a misnomer. It absolutely can be used as a Backdoor, and giving M$ the benefit of the doubt in its entirety does not change this fact. Did the original programmer intend it to be one? Was it intentional on the part of Bill Gates or some lower level minion? Was the NSA involved? Was the comment of Congressman Weldon in the September 28, 1999 Internet Caucus Panel Discussion related to any of this? What color underwear is Gates wearing on any given day (if any?) ... these are all besides the point, and I for one hope never to know the answer to that last one .....

    As far as the WINE team duplicating the behaviour, that is their job. They absolutely cannot go around fixing security vulnerabilities in the Windows APIs, since Windows counts on those holes to function "properly." Which brings us to the assertion that they didn't notice it, so it is subtle. This is patently absurd. I suspect if the WINE team spent their time analysing Windows code and reporting potential security holes to bugtrac, they would have time to do little else. Did they notice it? Maybe. If they didn't, does that mean it is excusable that it still exists in the codebase (and was in fact found to be exploitable in Beta Vista code)? Perhaps, so long as we ignore one little aspect of this whole thing: Windows code is insecure, not because a well-intended security conscious from the ground up re-design wasn't completelt successful, but rather because the claim that this was being done was a bold faced lie. It didn't happen. It is never going to happen. Poor security in Windows exists today for the same reason it did in the Windows 3.x days, to wit: The money is in churning out code quickly and selling it to the mass of customers who simply don't know enough about how things work "under the hood" to appreciate the difference between flash and substance. This is the state of things, and will continue to be so for the foreseeable future.

    And just to render as useless about half of the posts for this article, I would like to remind everyone that an attack on the character of a man, rather than a rebuttal of the substance his words, is the surest sign that a person has no valid argument or point to be made with regard to the actual issue. Are we really listening to what Gibson has to say? If you think it does, you didn't understand what was said. Does it matter who said it? Certainly, he made some mistakes, and may have been a bit overzealous in his manner and conclusion, but he did bring a lot more people the point where they thought about it enough to consider the important points: It is a Backdoor. We don't know if it was intentional, but it may well have been. If it wasn't intentional, then it is the result of gross negligence on the part of Microsoft.

    Read the .sig, and consider it released under terms similiar to the GPL ...

    --
    Guns don't kill people; Physics kills people! - John Lithgow as Dick Solomon on Third Rock From The Sun
  103. Re:Whah-augmented by Anonymous Coward · · Score: 0

    "What else is there to say? It's a bit of legacy code left over from the days when it was safe to assume that any code on a computer had been put their with the owner's knowledge and consent. That assumption has since been invalidated by subsequent events. A backdoor it may be -- but when it was put there, there used to be a fence around the back garden. "

    Great comment, and true. I remember when it was darned hard to get computers to communicate at all, and in general all ends of the link were trusted friends anyway. I'm no MS apologist, but their "features" both good and bad, made me tons of money, provided some great jobs (and good job security), and a lot of just plain fun. I found when folks complained about undocumented stuff that in general they just hadn't looked hard enough in the MSDN stuff that comes with DevStudio -- see ole storage for example for how to build a browser that will read the word format easily -- and just try to intuit that you should be looking for something spelled ShFileop to do fancy copies or moves, when every other file op begins with F. Compared to windows (here come the flames) linux is undocumented -- for the same reasons. Too many words, not enough clear explanation of motivations, too little organization, especially around versions. The MSDN dox go all the way back to the first version of MFC, for example, and are darn dangerous reading if you don't check the applicability to what you are doing. Linux has the same problem set. It's just there, it's not anybody's fault per se, and it will take a lot of very expensive work for anyone to fix up, if that's even possible. Maybe someone still needs the MFC 2.5 docs? Or Redhat 7 for that matter.

    The rest of the above comment has validity too. Here, we used an old DOS version of a CAD program that was perfectly adequate for our needs -- we did PCB layout with it. Current replacement cost for Windows? Over $12 grand. Kind of a big deal in a 4 man shop. And win2k sp? broke it (by disallowing dos to do hardware things) to fix a security bug. That was the last windows we ever bought or built a machine for, right there, the end.

    Well, except for a few percent of machines we need here to write and test windows apps for paying customers, we are now all linux (about 85% or all but a couple out of about 20) and that cad program runs just great on dosemu. So the desertion from Windows has already begun for just the reasons stated -- in this case there was no need to get a copy of Win9x from a Hamfest, just download ubuntu, run Automatix, and all is sweet again, and one heck of a lot more stable.

    DougCoulter, owner
    C-Lab

  104. Re:This is where being able to see the source help by DigitlDud · · Score: 1

    Actually he was one of the first people outside Microsoft to be granted a license to the NT source code.

  105. Re:So, we all really believe Windows lacks a backd by Anonymous Coward · · Score: 0

    Now how can MS have claimed to have done an audit, and not noticed code mixed in with a data format, especially since the ability to execute code from fonts was exposed? (nobody audits fonts, which can come in in via a .pdf)

    This means other vectors, like volume controls, power save, and toggle video cards, and software eject functions are probably wide open and compromised as we speak - like sending a command or bytestring to get your video card to go into diagnostic mode where it can do raw DMA accesses. Let's hope no-one discovers similar 'oversights' the CPU bridge or the power supply api.

    This is bad, and there are still fights if this is a 4 byte vector, or actual code. MS is pouring fogg over the issue. Anything that does a async re-try on error, could be at risk. If a vendor does not notice this, after such a long time, then maybe you should pick a different OS.

  106. Re:Back door or poor design? You can't really tell by Arker · · Score: 1

    None of which explains why this vulnerability is absent in Win95 and ME, but present in Win2k and XP.

    --
    =-=-=-=-=-=-=-=-=-=-=-=-=-=-
    Friends don't let friends enable ecmascript.
  107. Re:I don't think many people too Gibson seriously. by plover · · Score: 1
    I just saw those new length-aware versions of the old standby functions, too, and thought "hey, that's a good idea." Actually, I became aware of them by the sheer number of C4996 - "deprecated" warnings the project I was compiling emitted :-( I was so depressed I had to #pragma warning(disable:4996) them all away :-)

    To bring this back on topic, those secure functions would not have helped with this particular case. There was no "program flaw" present, it was instead a "design flaw". And flaw is even too strong a word -- weakness would be better. Given the state of the world in 1992 when it was first designed, there was no thought at all given to "malicious code" other than viruses. With Windows still being three years away from even supporting IP, the only code you executed was code you brought with you. And virus scanners watched those floppy drives like hawks. Even when Windows NT came out, there was still no real thought given to code "security."

    Malware didn't reach the big time until about 1997 or 1998 when the first adware started being installed. Microsoft finally focused on security somewhere around 2001. And by then, the WMF code had gained tenure. The AbortProc() API didn't leak memory, it didn't trigger any buffer overrun tests (in isolation, anyway.) It did exactly what it was designed to do, it's just that it was designed in a safer era.

    Back off topic: even as late as last year my Microsoft rep has continued to insist that Microsoft "security" comes from Microsoft innovations such as "security blankets" and "access permissions". He continued to spout the corporate line, while completely failing to recognize that Trojan horses are still the #1 vector of disaster on Microsoft boxes. What pissed me off is that he did not seem to want to understand that it wasn't about "bad people doing bad things", it has always been about "authorized people being manipulated into doing bad things." I think their training has been lacking.

    --
    John
  108. Just The Facts Here! by ZOverLord · · Score: 1

    Did Microsoft Know this BUG was present?

    Answer from Microsoft's own statement:

    "The potential danger of this type of metafile record was recognized and some applications (Internet Explorer, notably) will not process any metafile record of type META_ESCAPE, the overall type of the SetAbortProc record."

    Entire Statement Located here:

    http://blogs.technet.com/msrc/archive/2006/01/13/4 17431.aspx

    What does this mean?

    It means that at some point in the past Microsoft had full knowledge that Meta-Files were capable of executing custom code when they were being rendered and displayed for "Non-Printer Errors". It took a programing effort to modify Internet Explorer to be "Sand Boxed" from Meta-Files to restrict it from executing the custom code contained in them.

    So, Microsoft also knew that just the act of rendering and displaying a Meta-File, would/could execute custom code, and that the same would/could be done while displaying such Meta-Files via Explorer for example when it encountered one of these in a folder ("With or Without") thumbnail view being on.

    Now, they also knew that these files could be embedded in Microsoft Office documents, in Microsoft Word, In other 3rd party applictions, viewers and WINE for example.

    As They "Sand Boxed" IE from this threat ("Which they left in place") did they warn corporations, users that this BUG still was being allowed to execute custom code and could be delivered using many methods, contained in documents, via email, via downloads, via floppy, CD, DVD?

    It is no longer a question that this BUG became a supported FEATURE, the question is why was it allowed to remain?

    When your House is flooding, do you build a LEVY ("Sand Box IE") around your house, when you can see very clearly that the water main ("The GDI Libraries") in your front yard is spewing water?

    Worse, you already know that you have made a programming effort to "Sand Box" your Browser IE, from this threat ("You Leave in Place") you also PORT it to your new Operating system Vista?

    WHY? That answer we will may never know.

    One suggestion is they did this to support current clients using this, the questions would be, who were they? Why were they allowed to use unsupported and undocumented features in Meta-Files, and was it worth the exposure of Millions of computers World Wide if this was the case?

    --
    Black Gray White Hats Unite to protect http://testing.OnlyTheRightAnswers.com
  109. Re:Back door or poor design? You can't really tell by spectecjr · · Score: 1

    None of which explains why this vulnerability is absent in Win95 and ME, but present in Win2k and XP.

    Let me correct that statement for you.

    None of which explains why this vulnerability is absent in Win95 and ME, but present in Win2k and XP and WINE .

    Much better. Now, what's the conspiracy you're positing again?

    --
    Coming soon - pyrogyra
  110. Good, valient points still hold by Anonymous Coward · · Score: 0

    Nice post. I think what many other posters are missing here is ... nothing is really proved yea or nay. Yeah, I read Mark's post, and I've read Gibson's stuff, and the Microsoft's claims, I'll call it a draw. They have not definitively proved this was not an intentional backdoor, even though I actually leaned this way having first read the transcript from Gibson's talk. I think we are tripping over details, when the main points of Gibson's talk still hold. With Microsoft's proprietary, closed source code, well we really don't know what it's doing. So many independent security experts like Mark have to analyze the WINE code, not the real Microsoft code, and make their conclusions. In fact, as an aside, I believe I read somewhere that these were *not* the same bugs, as many have concluded, they are in fact similar, but slightly different. And if you read Mark's post, he even admits he's not sure what the heck the code is there for. And this is what Gibson said - we'll probably never know, original programmer long gone. Further, I'm real tired of the smear attacks against Gibson, with Rosenbergers lame site of a few scraggly e-mails critical of Gibson, and -- get this -- links to Microsoft. Sure, I bet Bill *hates* this guy. They'd like to throw alot more than a chair at the dude you can bet. On the other hand, is he helping MSFT get more serious about security? You betcha. The landscape has changed, long time back. Like, wasn't WarGames early 80's? Morris worm 88? Cutler (NT architect) must've been familiar with that having worked at DEC. Puhleez don't give me that lame argument about the landscape has changed.