Image Handling Flaw Puts Windows At Risk 287
An anonymous reader writes "Microsoft has released word that several image handling flaws may open Windows PCs to Spyware or viruses. From the article: 'We will continue to see this type of vulnerabilities in every major application for the foreseeable future ... It is not just images, but any type of complex file format. This is something that security researchers and hackers have realized to be a weak point in many applications.'"
Huh? (Score:5, Funny)
Re:Time to switch to Macintosh (Score:5, Informative)
List of security updates for Mac OS X [apple.com]
Take for example Security Update 2005-008 [apple.com]
This update includes the following components:
ImageIO
LibSystem
Mail
QuickDraw
Ruby
SecurityAgent
securityd
Hmm. A security update that touches the ImageIO library?
p.s. before you flame/mod me into oblivion, I'm a happy Mac OS X user. Yes, Windows has way more bugs and a much worse security record. Is OS X invulnerable? No.
Re:Time to switch to Macintosh (Score:4, Interesting)
As an aside, this is where the the comment about "Macs have no viruses because they have low marketshare" holds some sway with me. I agree with everyone who says Macs are more secure than Windows, don't get me wrong. Once your code is running, it's much tougher to do anything to spread a virus in the same way that viruses spread in Windows. But part of it is that nobody really does the immense amount of reverse engineering necessary to write a virus or worm based upon an a published vulnerability. While, with Windows, an entire cottage industry has been built to figure that stuff out because there's money in it.
These things, as with many things in life, do not stem from one reason. Windows has viruses because of poor security. Windows has lots of viruses because of marketshare. Macs have fewer viruses because of better security. Macs have no viruses because of marketshare.
No. No. No. (Score:3, Insightful)
Apache hosts vastly outnumber everything else combined. Postfix/Sendmail/Qmail/Exim probably have 90% of the email server market. There are many more installations of MySQL than MSSQL. And yet, how many worms have you seen roaring through the Internet unstopped that affect those applications? By any count, relatively very few.
And yet the bad guys, who even have the full s
Re:Time to switch to Macintosh (Score:4, Informative)
DUPE (Score:4, Funny)
Windows has already had an image handling flaw!
Oh, it's Windows. False alarm.
Re:DUPE (Score:2, Informative)
Re:DUPE (Score:3, Informative)
If only there was some place that you could configure how posting dates are displayed. Perhaps in your user preferences [slashdot.org] somewhere...
Critical Bug? (Score:5, Insightful)
What is the likelihood that users won't patch their machines? (cough!)
From TFA:
Mehta doesn't expect the latest Windows flaws to be exploited in a widespread attack. "We're not bracing for any major worm or malware outbreak, but we do expect them to be used in targeted attacks," Mehta said. "There is user interaction required, there has to be someone sitting at the other end in order to be compromised."
Yeah, like viewing an image from usenet. No one ever does that.
Re:Critical Bug? (Score:3, Informative)
Re:Critical Bug? (Score:2, Insightful)
Re:Critical Bug? (Score:2, Funny)
Windows programs NEVER break applica.,M0$2;mfwe-23487.we
Re:Critical Bug? (Score:5, Funny)
Well, it went up on the slashdot mainpage, so that likelihood for a great number of users is a lot lower than it would have been.
The 35 users I'm responsible for just got an email instructing them on how to to do the patch, with links to the patch execs that now live on our local file server.
This model -- (1) Microsoft announces it; (2) I hear about it on /. or security focus (usually both); (3) my users hear about it from me -- works well.
Sure, that's a drop in the bucket for windows PCs, but the point is that the communication chanels are open, and as long as people have the oportunity to hear about these things, we can reasonably expect them to be responsible for implementing them
Of course, that's not an excuse for making vulnerable software in the first place...
Re:Critical Bug? (Score:3, Interesting)
Re:Critical Bug? (Score:4, Informative)
Re:Critical Bug? (Score:3, Informative)
The volume is different, to be sure. That is probably an artifact of the number of users running the OS.
But your point is well taken; no operating system is immune to attack. Unfortunately, Windows users generally lack the discipline to patch their machines regularly. I don't know many *nix system users who do not perform regular updates.
That probably accounts for the low infection rates of *nix-related system.
Re:Critical Bug? (Score:2, Troll)
I don't trust Microsoft, I don't trust ActiveX. I didn't get the patch... time to switch to Linux...
Re:Critical Bug? (Score:3, Funny)
Then why would you try to install the patch in the first place ? Heck, why would you even be running Windows ?
Usenet? (Score:2)
Usenet? Is that like a web browser?
No one ever does that.
Not since 1998, really.
Re:Critical Bug? (Score:3, Funny)
Netcraft confirms it!
Re:Critical Bug? (Score:4, Funny)
alt.binaries.necrophilia has been very quiet lately.
Managed code (Score:2, Funny)
An interesting question (Score:5, Insightful)
Writing managed applications won't protect you (completely) if the underlying framework isn't also managed.
Re:An interesting question (Score:2)
i'd be very surprised if the
Re:An interesting question (Score:5, Funny)
Then I went and typed that spelling into Google, and found out that enough people have spelled it incorrectly on the web that Google doesn't know how to correct it, and suggests another incorrect spelling.
Correct spelling is "unnecessary".
Now, mod me down as a pedantic twit.
Re:An interesting question (Score:2)
His point — "This is why we need more managed code." — is still valid, though.
Re:An interesting question (Score:3, Interesting)
No, it isn't. There are plenty of ways to fix programming languages so that they don't have a risk of buffer overflow exploits without the performance hit of some bloated vitual machine. All that is really required is for there to be a lot stricter checking when doing operations involving pointers.
Change the following:
Re:An interesting question (Score:5, Insightful)
The biggest excuse I hear from programmers for why they've violated strict logic flow is always,"Well, I was coding for speed and efficiency". With 3.0+GHz machines, what does it matter anymore? It's all a lot of hooey, too. The person learned that excuse from someone in 8th grade and they've latched onto it. When pressed they rarely even know what logical structure they've violated. They only know the excuse.
I think the biggest problem facing us is the inundation of object oriented programming languages. There's very little need to learn the strict mathematics of programming anymore. It is this laziness, and not any particular language, which is the root cause of the problem. Programming environments with sandboxes (ie. Java) are band-aids to a bigger problem.
The problem is with lazy programmers.
Re:An interesting question (Score:3, Interesting)
The problem is with lazy programmers.
I've posted this before on Slashdot, so apologies for the dupe, but...
My first technical question in an interview is "what is wrong with this C code?"
void echo(void) { char *s; gets(s); puts(s); }
Over 50% of the "experienced C coders" I interview fail to get the answer right, and this has been a constant for about the last five years. Scary, isn't it? What's even scarier is when an employer hires them after I've flagged this in the post-interview chat.
Re:An interesting question (Score:2, Insightful)
Re:An interesting question (Score:2)
what is wrong with that code (Score:3, Informative)
Fixed code:
void echo(void) { char S; char *s= gets(s); puts(s); putchar('\n'); }
Note that the fixed code neatly avoids many stack protection mechanisms by not using a normal array. An improvement would be to use a more interesting struct to hold the data, with enough room to h
Re:what is wrong with that code (Score:5, Funny)
The code was different when I posted it. As usual, Slashdot eats my punctuation
Yeah, yeah, "the dog ate my homework". Heard it before ... ;-)
Re:An interesting question (Score:2)
One could enforce using a system in object space, rather than memory space, too, and compile this to native code with little or no peformance loss — this is what the Microsoft's research project Singularity, mentioned on here not long ago, is suggesting.
Back to the topic, though, in practice, the performance hit of managed code is negligable in most cases, and the extra safety it provides is far more valuable. Nobody can write bug-free code. Making entire classes of serious bugs impossible to impleme
Re:An interesting question (Score:2)
Re:An interesting question (Score:2)
Re:An interesting question (Score:2)
I don't know about this particular vulnerability, but MS's
Actually, it's mostly interop over existing windows apis (not com). System.Drawing is based on GDI+ which is a C library.
Re:Managed code (Score:2)
It is not just images, but any type of complex file format.
For 'complex', read 'proprietary'.
Re:Managed code (Score:2)
Re:Managed code (Score:3, Interesting)
Re:Managed code (Score:3, Insightful)
Lets face it, except for corner cases managed code is usually within a few % of the same speed as unmanaged code, and that few % isn't always on the slow side either.
Of course its possible to write crap manag
Practice safe image viewing folks! (Score:5, Funny)
Re:Practice safe image viewing folks! (Score:2, Funny)
My computer has already been crippled from a number of trojans...
Re:Practice safe image viewing folks! (Score:5, Funny)
Practice safe ... listening (Score:2)
Ack! (Score:5, Funny)
Will the horrors ever stop?!!
Re:Ack! (Score:2)
So, Windoze merely has an image problem? (Score:2, Funny)
Re:So, Windoze merely has an image problem? (Score:2)
I guess. In any case, I put their patch on my compy today. No side effects yet; let's <badImagePun>see what develops</badImagePun>.
"It is not just images, but any type of complex file format. This is something that security researchers and hackers have realized to be a weak point in many applications."
Hopefully they didn't just realize that.
MSN Messenger felled by this months ago (Score:5, Interesting)
In a Messenger program that is always accepting new input in the form of pictures and messages, it's especially dangerous because anyone who's online will instantly become a zombie spewing out infection to their friends on their contact list. You really will get viruses through your personal contacts more than spamming-strangers in the future.
Re:MSN Messenger felled by this months ago (Score:5, Informative)
Re:MSN Messenger felled by this months ago (Score:2)
Ironic. 9x not affected. (Score:4, Informative)
Ironic.
The usual MS obfuscation for "because we don't support 9x anymore, by definition there are no critical updates for 9x" is to state that 9x is "Not Critically Affected", with a URL to a page that defines "critically affected" in such a way as to exclude 9x.
"Not Affected", as claimed in MS05-053, is a stronger claim. That's not to say there aren't similar bugs in image-handling in 9x; only that the hole in this notice probably doesn't affect 9x.
Of Course (Score:3, Interesting)
Re:Of Course (Score:2)
Re:Of Course (Score:2)
I half expect that codecs with exploits are products of IP battles. "We can't do it the right way, but if we do it this way we can still achieve the same compression/decompression algorithm--albeit with a potential code fault."
Long live IP for MS. The Open Source King kives.
Re:Of Course (Score:2)
Anyways, unless you've done software development, your opinion doesn't matter.
Re:Of Course (Score:2, Interesting)
Here's why these things happen so much with Windows: no developer ever sees all of the code, only their own portion. They don't work together. One developer has few, if any, clues what the other developers are doing. This is Microsoft's idea of securing the code (Didn't work, did it?)
Traditionally, Microsoft Windows is built by thousands of software engineers, each producing their own segments of code that are stitched together into one program. From Microsoft Admits Trouble with Windows [babsonfreepress.com]
Imagine it this w
When writing a parser, length checking is a must (Score:5, Interesting)
Consider ASN.1 data (used, for instance, for digital certificates, certificate revocation lists, certificate requests and so on).
Each and every ASN.1 data element and each and every sub-element contains a length field. The ASN.1 parser should check whether the length field of a sub-element goes beyond the length of the enclosing data element, and so on ad infinitum.
If the parser detects a violation, parsing stops.
Re:When writing a parser, length checking is a mus (Score:2)
1: when coding with pointers/unchecked length arrays all it takes is one screwup even if you are trying to be carefull. Higher level structures and/or managed code can prevent this but at a cost in performance bloat and in the case of managed code ease of integration with traditional code.
2: the wmf/emf code is probablly very old from long long before the internet was commonplace. The idea of people deliberately creating image files to bypass security probablly didn't even occour t
Re:When writing a parser, length checking is a mus (Score:2)
If they can't code it right then maybe they should be serving french fries.
Re:When writing a parser, length checking is a mus (Score:2)
To Finish Microsoft's Quote..... (Score:2, Funny)
Lemme finish off that
Seriously, why integrate something so seriously flawed into the OS? The only thing it'll do is make the system less stable and less secure.
Guy is from Internet Security Systems (Score:4, Informative)
This has nothing really to do with IE. IE here just happens to be a vector. If FF on windows was depending on those libraries to display those image formats they would be vulnerable as well.
Re:Guy is from Internet Security Systems (Score:2)
Re:To Finish Microsoft's Quote..... (Score:3, Interesting)
Let me guess, you're one of these dimwits who think "integrating IE directly into the OS" means it's part of the kernel ?
Another brownie point for the cause of DRM? (Score:2, Interesting)
Re:Another brownie point for the cause of DRM? (Score:5, Insightful)
Besides, if you're passing "unprotected" content around you'll still have these issues. Not every JPG is going to suddenly be digitally signed and encrypted. Assuming the same "media viewer" application, you'll have the same bugs.
If anything, the DRM code just adds another layer of interpretation that's open to attack, making your system "less safe" rather than "more safe." More code == more potential for bugs.
Re:Another brownie point for the cause of DRM? (Score:2)
When I read the GP, I thought he meant DRM content, not code. If you can't trust your system to safely deal with whatever it encounters, then many consumers will be easily convinced that the solution is to guarantee that it only encounters trusted data.
For instance, you don't just stick any old CD from a mass mailing into your drive and install software to see what it does, do you? Most people understand now
Getting a certificate is easy (Score:2)
(There are even of account of people havving managed to buy a certificated with "microsoft" in it's name !!!)
Be sure that, if DRM becomes widespread, the malware creators will be the first to digitally sign everything with such buggy certificate.
(Just like what is already happenning with ActiveX applets...)
And meanwhile, lot's of legitimate content will fail, because of lack of signing. (Opensource software that cannot afford DRM certificate, .
phishy... phishy... (Score:3, Insightful)
In a later interview:"Only one known product suite on the market can protect you from these ongoing threats. MS-AntiVirus and MS-AntiSpyware. Only these two programs are equipt with the proper image handling algorithims to detect these known flaws inherent in all programs."
This seems like a big scheme to get people on their proprietary AV and AntiSpyware programs. Lets see... Find hole, fix hole, release press release about hole, plug product, patch hole for product users.
eesh.we will see.
Re:phishy... phishy... (Score:2, Insightful)
typical case of code-based formats (Score:4, Interesting)
Re:typical case of code-based formats (Score:5, Insightful)
If you want detailed control over layout, especially with low overhead for rendering, an instruction based approach is quite good. The point is that no GDI call, in itself, should be able to mess things up and simple parameter validation of the WMF input should be enough when spooling the calls.
(Hey, Postscript is even Turing complete. There's nothing wrong with describing a picture as instructions to a state machine with some rendering primitives.)
Besides, WMF is 15+ years old now. The availability of formats for vector graphics that matched the features of GDI (while not being expensive, money-wise or performance-wise, to render by GDI) back then was a bit different. The format has never been used much for real files, but quite a lot for clipboard transfer of vector data (Excel graphs and whatnot).
Re:typical case of code-based formats (Score:3, Interesting)
I'm sorry, but how does this differ from any other vector-based graphics file format? Of course it's the instructions for how to draw the item. Of course they are executed. What else would you want them to do?
This is also how Postscript and PDF work. Actually post script is more than simple instructions, it is actually a programming language. This is part of why Apple/NeXT cho
Re:typical case of code-based formats (Score:2)
Sorry, I see that I didn't properly express myself. You're right, there's nothing wrong with instruction-based formats. But since the WMF files are direct GDI instructions, they made to be loaded an executed, without proper checking. Not that you can't check them, or shouldn't check them, but that they were originally "designed
Re:typical case of code-based formats (Score:2)
(Oh, wait...)
Sorta like this quicktime one (Score:5, Insightful)
I like this line of Grade-A bullshit.... (Score:5, Insightful)
If a programmer is taking the time and effort to interpret a complex file format, why can't he also take the time to validate it.
Re:I like this line of Grade-A bullshit.... (Score:5, Insightful)
Re:I like this line of Grade-A bullshit.... (Score:2)
That said, if a full validation is not performed, at the very least a bounds check should make sure that a buffer overflow doesn't happen. I would hope you would agree that that's a minimum a good programmer should do.
Re:I like this line of Grade-A bullshit.... (Score:2)
Re:I like this line of Grade-A bullshit.... (Score:2)
If a programmer is taking the time and effort to interpret a complex file format, why can't he also take the time to validate it.
If a /.-poster is taking the time and effort to post a comment, why can't the poster also take the time to avoid sexism?
ReadOnly OS (Score:2)
At least then if you get exploited, the next time you reboot the exploit goes away.
Re:ReadOnly OS (Score:2)
a) won't protect my data against vulnerabilities and
b) won't let me change the OS
is
c) the worst of both worlds.
Or were you only trying to be funny?
Re:ReadOnly OS (Score:2)
Still does, ever hear of the 'embedded market' ?
Re:ReadOnly OS (Score:2)
Its faster, and no mechanical issues to deal with.
Every File Format... (Score:2)
Every file format becomes a programming language in the long run.
OK, maybe not *every* file format, but most of them. Think about that, and design accordingly from the start. Parse into a VM from the start and write a verifier from the start.
And no, there isn't a magic bullet. Even the XML advocate who posted before me admitted that wouldn't be an appropriate solution for something like MPEG due to performance concerns. I'm even willing to admit that what I'm suggesting is no magic bullet either; bu
When will overflows stop? (Score:2)
Yet I bet
The real threat (Score:4, Funny)
That is the real threat, my friend.
The Lusers Were Right All Along (Score:2)
"You know if you view an image with a virus, it'll infect your computer"
I vividly remember openly scoffing at their remarks and explaining in detail why what they were proposing was completely impossible.
And now they were right all along. Do I have to email out apologies?
Re:The Lusers Were Right All Along (Score:2)
More of the same (Score:2)
Oh well, because of that smooth move, I managed to convert someone to firefox who otherwise would have never considered it...
This is probably going to get modded as funny, but (Score:3, Interesting)
Oh, and before you ask... twice a week virus scans, two noted spyware blockers, and a reliable firewall. How reliable? Shit,
Okay, now go on and say it... all together now... "Serves... YOU...
I've got the solution! (Score:4, Funny)
Not only will this stop the spread of viruses, it will drive hundreds of thousands of noobs off the internet. Usenet will be stored to it's former glory and AOL will go out of business. Marketshare of Linux and MacOSX will skyrocket and peace and balance will be restored to the Force!
Adblock filters (Score:4, Interesting)
Re:What the hell is it about buffer overflows? (Score:2)
Since not all programmers care about security (they may have assumed thier lib would only be used with trusted data) and even those that do are imperfect this leads to lots of buffer overflows in C code.
Re:What the hell is it about buffer overflows? (Score:4, Informative)
int getsn(char *cp, int size);
This has been a huge effort executed using automated search methods and hand coding, to vet enormous amounts of Free code. Consequently the quality of GNU systems have improved dramatically, while the same cannot be said for MS code.
The problem is that if you overflow a buffer defined on the processor stack, then you can force a new return address into the Program Counter when a routine exits, thus giving the attacker control over the next piece of code to execute. This pice of code is typically part of the string that was used to overflow the buffer.
Re:complex file formats? (Score:3, Insightful)
Binary == Little compact files.
Plus add the parser, schema, etc. and you got yourself a big chunk of bloat. A simple RIFF style binary file with GOOD coding practices will be much smaller and more efficient.
Good example: At a past employer, we wrote software that would generate output data files. They used to be binary, and were roughly 25 to 30 KB in size. Then the whole XML hype set in and our customers just had to have it all in XML. Now output files are between 1 and 2 MB, plus roug
Re:complex file formats? (Score:2)
I can never figure out what sort of blind machismo animates C programmers that they *know* pointers are inevitably insecure and feel this makes them Manly Men for overcoming the difficulty ("well, most of th