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

 



Forgot your password?
typodupeerror
×
Security Software Linux

GdkPixbuf Suffers Image Decoding Vulnerabilities 291

DNAspark99 writes "It seems Multiple vulnerabilities have been reported in GdkPixbuf, which can be exploited by malicious people to DoS (Denial of Service), and potentially compromise a vulnerable system. Personally, I wasn't concerned about this until I ran 'ldd firefox-bin | grep libgdk_pixbuf'" There's no official patch yet, but the article notes several Linux vendors have issued updates. Worth keeping an eye for those who use libgdk_pixbuf under other Unix-style operating systems as well.
This discussion has been archived. No new comments can be posted.

GdkPixbuf Suffers Image Decoding Vulnerabilities

Comments Filter:
  • by gnuman99 ( 746007 ) on Thursday September 16, 2004 @06:47PM (#10272134)
    More bugs. More fixes. More patches. This is the software cycle...
  • gnome uses this (Score:5, Insightful)

    by kinko ( 82040 ) on Thursday September 16, 2004 @06:48PM (#10272142)
    If you're not aware, gnome2 uses this library, so any gtk2/gnome2 applications you use are probably linked against libgdk_pixbuf.

    update your systems...
  • by crimethinker ( 721591 ) on Thursday September 16, 2004 @06:48PM (#10272145)
    I think this is the fourth vulnerability related to image decoding I've seen in the past month or so. Methinks somebody is doing a thorough code review of open source image libraries, the stolen NT code (remember the Windows BMP vuln?), and, where source can't be obtained, thinking about where it might be vulnerable. I just wish people with that much determination would concentrate on fixing the bugs, instead of exploiting them ... so much wasted talent.

    sigh Time to tell the idealist in me to STFU.

    -paul

  • Re:What the hell (Score:4, Insightful)

    by Anonymous Coward on Thursday September 16, 2004 @06:51PM (#10272166)
    Well, they tend to be writing in C, and concerned about "performance". They thus leave out vital buffer checks. Given that computers are now 3000 times faster than when I was a lad, there's no excuse, any inefficiency is easily compensated for by the "ridiculous speed" of modern computers.

    Either learn to write safe C or switch to a safer language.
  • by BeBoxer ( 14448 ) on Thursday September 16, 2004 @06:57PM (#10272232)
    I just wish people with that much determination would concentrate on fixing the bugs, instead of exploiting them ... so much wasted talent.

    What we really need is a web page summarizing all the recent bugs in media decoding (mpg123 I think just had one) as a "how not to program" guide and then make it mandatory reading to get a sourceforge account. I think it's great folks are out looking for these bugs, but it's an embarrasement that there are this many being found so quickly. To me that indicates that there are a crapload of them out there.

    It makes me want to go on vacation for six months and do one upgrade when I get back. Instead of doing one a day for the next six months.
  • Re:What the hell (Score:5, Insightful)

    by pclminion ( 145572 ) on Thursday September 16, 2004 @06:58PM (#10272241)
    Are the people who write graphics libraries just not trying very hard or something?

    Uhhh, no. It is simply "in vogue" to look for vulnerabilities in image format parsers at the moment. Is the trend not obvious?

    Soon all the major image libraries will have been examined, all the bugs fixed, and the security gurus will move on to other things. And we'll all benefit from that, because the code will be fixed.

    Bitching is counterproductive, don't you think?

  • by PitaBred ( 632671 ) <slashdot&pitabred,dyndns,org> on Thursday September 16, 2004 @06:59PM (#10272254) Homepage
    The thing is, you now know about the vulnerability. I'd rather know about it and fix it than not know about it and let someone exploit it. It's a GOOD thing that people are finding these and reporting them. They'll found either way...
  • by ZuperDee ( 161571 ) <[moc.oohay] [ta] [eedrepuz]> on Thursday September 16, 2004 @07:01PM (#10272263) Homepage Journal
    I just wish people with that much determination would concentrate on fixing the bugs, instead of exploiting them ... so much wasted talent.

    Why should they?!? If I ask a question, why should I also have to provide an answer? That is a stupid attitude to have. If everyone who asked questions had the answers, there'd be no questions to ask.

    Likewise, why look a gift horse in the mouth when he points out a vulnerability like that? Exploiting is a different art from coding to many people. Maybe it just so happens that some people are better at seeing things that others don't catch?

    And don't blame the tools, either. I hear too often people saying things like "if only it were in Java instead of C++, this would not be a problem." A poor workman always blames his tools. A poor musician can ALWAYS say "if only I had a better instrument, I could be a better musician." One simple word for that: Balderdash.
  • Re:What the hell (Score:5, Insightful)

    by Seq ( 653613 ) <slashdot@@@chrisirwin...ca> on Thursday September 16, 2004 @07:02PM (#10272277)

    I find that alot of people I've worked with in software development have a "get it working, clean it up later" attitude. Usually basic error checking gets thrown in, but "hardcore" security often gets put aside in favour of other projects that need to be done. Thus, I think we end up with a fair amount of possibly shoddy code.

    I've never done an audit, because I'm trying to write good code, and it's all I can do to be as "productive" as the others.

    I don't think anybody seriously thinks "man, that could be a huge problem! well, nobody will notice".

  • Yawn (Score:3, Insightful)

    by ChiralSoftware ( 743411 ) <info@chiralsoftware.net> on Thursday September 16, 2004 @07:03PM (#10272282) Homepage
    Maybe Slashdot should have a separate section for this? As I've said again [slashdot.org] and again [slashdot.org], we will keep having these types of vulnerabilities until we start using languages with safe pointers and safe memory operations. NX bits, library loading location randomization help too.

    I was just using the Icesoft Java web browser [icesoft.com] and the Fluendo media player [fluendo.com]. These are both big applications written in 100% pure Java. They both don't have buffer overflows because Java doesn't have buffers (in the C sense). How many security holes do we need to see every week?

  • by illusioned ( 733320 ) on Thursday September 16, 2004 @07:04PM (#10272295) Homepage
    This is why I really hate when people start wars about one platform over another over security. No one is perfect, and errors like this will happen. The only real way to attempt to prevent flaws like this is more strict code reviews and more testing and debugging. Even those actions won't always find a problem like this because sometimes the problem is outside the bounds of the program's normal operation (ie invalid data in an image that wouldn't be found by testing with real images). All we can do is hope that there are more of us wearing white hats then there are those of us wearing black hats.
  • by cyb97 ( 520582 ) <cyb97@noxtension.com> on Thursday September 16, 2004 @07:17PM (#10272454) Homepage Journal
    Trying to secondguess what the OP meant (ofcourse influenced by my own opinion), every bug or patch isn't really slashdot-worthy. This one certainly ain't groundbreaking news...
  • Re:What the hell (Score:5, Insightful)

    by cyb97 ( 520582 ) <cyb97@noxtension.com> on Thursday September 16, 2004 @07:21PM (#10272498) Homepage Journal
    well eventhough the computers are zillion times faster, the datastructures they have to deal with have gotten zillion times bigger and/or more complex.
    Solving algorithm-deficiencies by throwing more iron at it is a short-term solution that is bound to come back and bite you in the tail sooner or later.

    Learn to write safe C and make sure your algorithms are sound and healthy.
  • Re:What the hell (Score:3, Insightful)

    by fitten ( 521191 ) on Thursday September 16, 2004 @07:22PM (#10272509)
    There are a number of very easy things you can do while coding to make it more secure. For example, avoid any non- "n" string function. Just get used to typing and using strncat and snprintf and the like instead of the unchecked ones. Little things like that can actually go a pretty long way.
  • Overflow testing (Score:3, Insightful)

    by phorm ( 591458 ) on Thursday September 16, 2004 @07:36PM (#10272605) Journal
    How hard would it be to write a program that could be used to test apps against buffer overflow errors. This should be given the source of the app, where one could exclude various procedures (i.e. when the calling procecedure already tests for overflow).

    Difficult, impossible. Helpful or useless?

    I'd imagine that with such tools hackers could also test your code for overflows, but if it became mainstream to hardcore test for such things then perhaps they wouldn't have the opportunity.
  • Re:What the hell (Score:3, Insightful)

    by pavon ( 30274 ) on Thursday September 16, 2004 @07:36PM (#10272609)
    Graphic proccessing is one of the places where the speed is needed. Yes computers have gotten 1000 times faster but modern GUIs do 1000 times more graphics computations than they use to. Concider the fact that every single gtk/gnome widget drawn on your screen uses this library (yay themes) and it becomes apparrent that it has to be written for speed, so going to a high level language is not an option. There are many other reasons that GTK uses C, the main one being that while everyone is moving to high level languages, they are all moving to different ones. Therefore, GTK has to be written in C since that is what all the other languages can link against.

    Second, it likely wasn't that they intentionally left out checks on purpose for speed, but just missed one - probably weren't think about someone attempting to DOS thier graphics library. It happens when you write code. I am a decent programmer and have never found an integer overflow or memory access error in any C code I wrote (after shipping it), but I am not arrogant enough to think that there are not any in there waiting to be discovered. It isn't insightfull to say that if everyone programmmed perfectly then we wouldn't have any bugs - it is unrealistic.

    Lastly, even if you did use a high level language, the programmer that overlooked thisp problem in C would still overlook it in the higher level lanugage as well. It would likely result in an uncaught exception, and the program would likely terminate. So this would still be a bug - just not a security hole, since it couldn't result in executing arbitrary code.

    Higher level lanugagues can help make a program more secure, and are a good idea for that reason. But as long as human beings are the ones writting code, mistakes and oversights will happen, and patches are something you will have to learn to live with.
  • by Anonymous Coward on Thursday September 16, 2004 @07:48PM (#10272711)
    Though this isn't a kernel exploit, I thought one selling point of Linux was the "millions" of eyes on the code to prevent problems such as this in such highly re-used software as libraries. When MS announces these things, it's called crappy code; when Linux does this, it's simply "normal software life-cycle". Does nobody else see this as strange? I can't wait for the proverbial monkeys to start pounding away on all the upcoming Linux boxes and the inevitable number of bugs to be discovered.

    Hmm, guess I'll stick with MS since they've already gone through the monkey-pounding.

  • by gnuman99 ( 746007 ) on Thursday September 16, 2004 @08:10PM (#10272845)
    Though this isn't a kernel exploit, I thought one selling point of Linux was the "millions" of eyes on the code to prevent problems such as this in such highly re-used software as libraries.

    You seem to be missing the point. ALL software has bugs and those bugs need to be found the removed. That is the software cycle.

    I can't wait for the proverbial monkeys to start pounding away on all the upcoming Linux boxes and the inevitable number of bugs to be discovered.

    You know, I can't wait either because then these bugs will be fixed :)

    Hmm, guess I'll stick with MS since they've already gone through the monkey-pounding.

    Go for it.

  • by cowbutt ( 21077 ) on Thursday September 16, 2004 @09:15PM (#10273229) Journal
    Methinks somebody is doing a thorough code review of open source image libraries, the stolen NT code (remember the Windows BMP vuln?), and, where source can't be obtained, thinking about where it might be vulnerable.

    I wouldn't be surprised if people are just testing the proof-of-concept demonstration files intended to break other image decoding code and finding that it breaks their code too, maybe in a slightly different way. It's not uncommon for separate programmers to make the same thinkos even if they've never seen each other's code (and especially if the original data spec is unclear, undefined or ambiguous on a given point).

    The scary thing is that the sorts of problem we're seeing here apply to any "active" data format - i.e. one where the file isn't simply read and taken as-is (e.g. a plain text file), but is actually made up of "commands" which are interpreted as the file is used. We've seen similar problems with PostScript, PDF, MP3, wmv and probably more besides. The thing about this one is that short of HTML, JPEGs are probably the single most-commonly accessed type of active file - and from sources which may not be trustworthy too!

    --

  • Re:Yawn (Score:3, Insightful)

    by argent ( 18001 ) <peter@slashdot . ... t a r o nga.com> on Thursday September 16, 2004 @09:28PM (#10273291) Homepage Journal
    The problem with Java isn't the speed of the runtime once it starts running, it's the huge bloody overhead as it cranks the JVM up. Of course you can use a shared JVM, if you want to abandon hard protection barriers between unrelated processes. It's fine in a webserver, but keep it away from my command line.

    There are safe languages with a lot less startup overhead than Java. Even quite slow languages like /bin/sh are better suited to a traditional UNIX environment.
  • Re:Tit for tat (Score:1, Insightful)

    by Anonymous Coward on Thursday September 16, 2004 @09:28PM (#10273293)
    I would like you to meet Mr. Sendmail. And while you're at it, say hello to bind for me.

    Just be glad most serious *ix security flaws have been taken care of under less public circumstances before most /.'ers had ever heard of Unix.
  • Re:Yawn (Score:1, Insightful)

    by Anonymous Coward on Thursday September 16, 2004 @11:22PM (#10273889)
    Even 'safe' languages can produce exploitable code - aside from VM issues.

    Java's security record isn't that bright. Yes, in the hands of a poor or overworked programmer, it will produce less buffer overflows... but the VMs themselves have been vulnerable from time to time, etc.

    However, the -most serious- security issues are arguably the higher level ones, ie, with insecure protocols; they can be impossible to fix while retaining backwards compatibility.

    While Java fans like to hype the language as "the solution to everything", it's not. It's not 100% secure; merely 'better by default' than C and its ilk.

    Other alternatives such as ocaml or lisp or python have similar benefits; the former two can have speed pretty much on par with C, while the latter, interpreted at -run time-, has historically been similar to Java speedwise [according to Sun's own memos.]

    "Use Java!" is an easy mantra to repeat. In terms of pure security, it would be a benefit -over C-. However, multiple other languages exist that allow for both buffer overflow protection and speed; what Java has going for it is marketing, name recognition, more programmers who already "know" it to various degrees, and not much else.

    Yes, 'well-written' Java code can be fast. Well-written C can be secure. Problem is, there is a lot of code in both categories that just isn't either...
  • Re:What the hell (Score:3, Insightful)

    by Antique Geekmeister ( 740220 ) on Thursday September 16, 2004 @11:23PM (#10273892)
    And they're not trying very hard. A new patentable algorithm is worth money. A performance improvement is also worth money and makes your software better. Most security measures, such as checking return values and carefully allocating memory or evaluating possible sizes of inputs, cost CPU time, slow your systems, and cost time to do. And they're often best understood by the most expensive programmers on a team, not the new guys and interns handed these new development problems, so they get tacked on only as an afterthought.
  • by Laxitive ( 10360 ) on Friday September 17, 2004 @03:29AM (#10274754) Journal
    Hey, I have a great idea!

    Let's keep writing software in an unsafe, glorified assembly language (and glorified assembly languages with OBJECTS!). You know, because it's not like we care about safe applications or anything. We need our button widgets to complete their draw operations in under 5 microseconds.

    Seriously, we don't need to check array dereferences. It takes up AN ENTIRE WHOLE INSTRUCTION for each dereference. That's insane, we might have to wait a whole millisecond for a button widget to redraw. And how can we deal with that? I mean, remote code getting executed on my local machine every once in a while, I can understand.. but I want my user interface to be SNAPPY.

    And besides, only stupid programmers write programs that can't deal with unsafe memory access. I mean, how stupid do you have to be? It's very easy: only clobber memory that needs to be clobbered. It's not rocket science!

    No, we don't need garbage collection, either. Real men keep track of all their pointers, all over their programs, and use ad-hoc reference counting schemes if necessary!

    Yep, hooray for C and C++.

    -Laxitive
  • by Gopal.V ( 532678 ) on Friday September 17, 2004 @03:40AM (#10274784) Homepage Journal
    I compile a LOT of my libraries on my box (it's an FC1 hybrid) and my other box is a gentoo.

    Most of the exploits (ie actual "exploits") depend on the EIP or some other register being clobbered or the stack being smashed to execute a data block. Metasploit has a nice database of such clobberable locations [metasploit.com] for Windows

    So if you compile your own stuff with your own "-O3 -fomit-frame-pointer -fstack-protector", you may be breaking the binary compatibility of exploit :). Most ordinary exploits will fail for such custom compiled stuff , unless the guy at the other end takes a memory dump (hard to do undetected over the network) and reads the .stab entries first to figure out your box's weak spot (to use "-g" or not ... hmm..). If you're dealing with guys like that , then you'd better invest a bit better in security than I do . I call it "Security through Diversity" .

    Too bad windows users don't have that option.

  • by Anonymous Coward on Friday September 17, 2004 @05:46AM (#10275081)
    So what do you write your uber language in? C? Well, better make sure that you debug that correctly, then, or you'll just have the error somewhere else...
  • Not at all similar (Score:3, Insightful)

    by FreeUser ( 11483 ) on Friday September 17, 2004 @10:04AM (#10276077)
    Isn't it a bit odd that these libraries are failing on both Windows and Linux?

    I wonder of someone has been stealing source code?


    While it is possible Microsoft may have violated the licenses of open source and free software projects, it is doubtful. It is virtually certain that the opposite is not the case, unless Microsoft lackeys are deliberately trying to poison the well, in which case a court would find the Microsoft willfully released the code into the wild, effectively licensing it. That isn't very likely either.

    What we do know is that C and C++ have vulnerabilities in how the language is used with respect to buffers, that can get even experienced programmers into trouble. We also know that algorithms for reading and drawing images are widely known, widely published, and quite standard, so any two (or more implimentations) are likely to run afoul of similiar mistakes in programming and weaknesses in the language (C/C++) used.

    Why moderators find it "insightful" or "interesting" to make the extremely unlikely insinuation that someone is probably be violating copyright in order for similar issues to arise out of code doing similar tasks using similar programming languages and similar libraries, accessing similar open standard graphical formats, bespeaks an agenda and ax to grind (either against Microsoft or Free Software), not an understanding of the underlying coding issues.

    I loathe and despise Microsoft as much as anyone, and for good reason, but lets try to limit our lambasting of that destructive and dangerous entity to issues which have a grounding in fact, and not unlikely scenerios like this. There are a plethora of real, documented activities by that company that can provide more than enough fodder for criticism, without insinuating the very unlikely in defiance of occams razer and all real sense.

    And if the jab was meant for Free Software, then replace the word "unlikely" above with "absurd beyond any rational measure."

Scientists will study your brain to learn more about your distant cousin, Man.

Working...