Slashdot Mirror


GdkPixbuf Suffers Image Decoding Vulnerabilities

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.

69 of 291 comments (clear)

  1. Nothing to see here... by gnuman99 · · Score: 3, Insightful

    More bugs. More fixes. More patches. This is the software cycle...

    1. Re:Nothing to see here... by tehshen · · Score: 3, Funny

      What would you prefer? To stop the patches and fixes, you want no new bugs. To have no new bugs, the product won't evolve. If you want a moving-forward product, don't complain :)

      --
      Guy asked me for a quarter for a cup of coffee. So I bit him.
    2. Re:Nothing to see here... by cyb97 · · Score: 2, Insightful

      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...

  2. gnome uses this by kinko · · Score: 4, Insightful

    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...

    1. Re:gnome uses this by http · · Score: 4, Informative

      I tried "apt-get --dry-run --purge remove libgdk-pixbuf2 libgdk-pixbuf-gnome2" and the list of packages was _long_. I do not have a gnome-heavy system, either. Some choice selections:
      bonobo
      galeon
      gdm
      gnome-control-center
      gnome-help
      gnome-panel
      gnome-session
      gnome-utils
      libgnomeprint-bin
      nautilus
      rep-gtk-gnome
      sawfish-gnome
      xchat-gnome

      It's a biggie, all right.

      --
      If opportunity came disguised as temptation, one knock would be enough.
      3^2 * 67^1 * 977^1
  3. Somebody is busy ... by crimethinker · · Score: 5, Insightful
    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

    --
    Pistol caliber is like religion: everyone has their favourite, and theirs is the only right choice.
    1. Re:Somebody is busy ... by Anonymous Coward · · Score: 5, Informative

      The one who found this vuln is Chris Evans, as known
      as the vsftpd author (http://vsftpd.beasts.org/), and
      here (http://scary.beasts.org/security/) are other bugs he found.

    2. Re:Somebody is busy ... by BeBoxer · · Score: 4, Insightful

      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.

    3. Re:Somebody is busy ... by PitaBred · · Score: 3, Insightful

      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...

    4. Re:Somebody is busy ... by ZuperDee · · Score: 3, Insightful

      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.

    5. Re:Somebody is busy ... by iabervon · · Score: 3, Informative

      You need to write exploits in order to test whether you've actually fixed the bugs, and in order to determine whether the code is actually correct for some reason you're not seeing.

      It is often the case that support for some functionality which is buggy in one implementation will be buggy in other implementations as well, so it is pretty common in general for a lot of similar bugs to turn up at the same time.

    6. Re:Somebody is busy ... by cowbutt · · Score: 2, Insightful
      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!

      --

  4. Re:What the hell by Anonymous Coward · · Score: 4, Insightful

    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.

  5. There will always be vulnerabilities by 2forshow · · Score: 3, Interesting

    There will always be vulnerabilities. Since people can't produce perfect code there will always be a way for someone to make a flaw into a vulnerability. Therefore there will always be patches and updates(relating to security measures). The only way to stop these flaws from becoming an issue, like this one, is to stop crackers. And good luck with that.

    --
    Free Ipods it's for real check out Wired then go to: http://www.freeiPods.com/default.aspx?referer=8533
  6. Time to switch by Anonymous Coward · · Score: 4, Funny

    Time to switch. Take back the Web.

    Vote against shoddy software with your clicks.

  7. A challenge for search engines? by prestwich · · Score: 5, Interesting

    It strikes me that it would be a good use of any spare capacity some search engines might have to search for image headers on web sites, that are attempting to exploit these types of problems.

  8. Re:What the hell by pclminion · · Score: 4, Insightful
    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?

  9. Not exploitable in Firefox by sppavlov · · Score: 5, Informative

    The only places using gdk-pixbuf in Firefox for loading images are all for loading images from your local machine. No from-the-network code paths use gdk-pixbuf.

    1. Re:Not exploitable in Firefox by sppavlov · · Score: 5, Informative

      Mozilla does not use gdk-pixbuf for drawing images -- stuart "pavlov" parmenter (mozilla image library owner)

    2. Re:Not exploitable in Firefox by sppavlov · · Score: 5, Informative

      We only use a single code path for rendering images. We only use gdk-pixbuf to decode GNOME images to find icons for mimetypes.

    3. Re:Not exploitable in Firefox by Mike+Shaver · · Score: 4, Informative

      Firefox uses gdkpixbuf for system MIME-type icons and window icons, which are loaded from the local system (GNOME icons or the firefox distribution). It does not use gdkpixbuf for decoding or displaying web-fetched images; it uses the Mozilla cross-platform image library (libpr0n), calling out to libpng, libjpeg and libgif as required underneath.

      Mike

    4. Re:Not exploitable in Firefox by asa · · Score: 4, Informative

      "So Firefox doesn't ever save an image file that was HTTP'd off the network to a cache directory and load it from disk as needed?"

      It uses libpr0n, Gecko's cross-platform rendering engine to load those images from disk. gdkpixbuf is not used for displaying remote content, even cached remote content.

      --Asa

    5. Re:Not exploitable in Firefox by macsuibhne · · Score: 3, Interesting

      Props to the Mozilla geeks for the naming scheme (this would have been mod points if I had any).

      Tony.

      --
      -- "Quis custodiet ipsos custodes?" -- Juvenal
    6. Re:Not exploitable in Firefox by Compenguin · · Score: 3, Informative

      Mozilla uses gdk-pixbuf via gtk to draw ui widgets, it uses libpr0n to render graphics in web pages. libpr0n runs on all platfors mozilla targets, gdk-pixbuf is a solution for gtk+ widget integration on X11.

    7. Re:Not exploitable in Firefox by TelJanin · · Score: 3, Informative

      Wow, libpr0n does exist. I thought it was just a joke.

  10. Yeah, I was worried too... by spoco2 · · Score: 5, Funny

    Last time I ran "ldd firefox-bin | grep libgdk_pixbuf". I was pretty worried that I had no frigging idea what the hell I was typing.

    1. Re:Yeah, I was worried too... by nbert · · Score: 2, Informative
      Last time I ran "ldd firefox-bin | grep libgdk_pixbuf". I was pretty worried that I had no frigging idea what the hell I was typing.
      That pretty much sums up my feelings when I read it. But the first line of the man page says it all:
      ldd - print shared library dependencies
    2. Re:Yeah, I was worried too... by cyb97 · · Score: 4, Informative

      it's always uncool to run unknown commands that you've seen on slashdot ;-)

    3. Re:Yeah, I was worried too... by FooAtWFU · · Score: 4, Funny
      it's always uncool to run unknown commands that you've seen on slashdot ;-)


      Oh yeah? Well :(){ :|:& };: you too, buddy!

      --
      The World Wide Web is dying. Soon, we shall have only the Internet.
    4. Re:Yeah, I was worried too... by pclminion · · Score: 2, Informative
      :(){ :|:& };:

      Son of a BITCH, I was just about to post that! GAH!

      (Dear Slashdotters: The command shown above will not harm your computer, but will probably require a reboot to recover from it)

    5. Re:Yeah, I was worried too... by moonbender · · Score: 2, Interesting

      Wow. It nearly did, even running Cygwin on Windows XP. Weird stuff.

      I entered it in cmd.exe (ie the MS command line interpreter) and nothing happened, it didn't complain about a wrong filename or command, either. Then I entered bash and pasted it, and not much happened either, it indicated that a new background job was started. When I closed bash, though, the computer stalled, the SysInternals task manager crashed (ouch) and mouse movement went sluggish. After a while, an error message came up remarking that Windows was out of virtual memory. I think that's what stopped the command, because at that point the system was back to normal and there was a bunch of error messages in the terminal.

      --
      Switch back to Slashdot's D1 system.
    6. Re:Yeah, I was worried too... by nbert · · Score: 2, Interesting
      Since OSX switched to bash it's possible to run this command on it too - but it won't do much harm, since they limit the amount of processes per user by default. However, I don't know about the average linux distro, so YMMV...

      disclaimer: my box would crash if I'd enter :(){ :|:& };:

    7. Re:Yeah, I was worried too... by pclminion · · Score: 3, Informative

      It makes more sense when you format it differently. It's a shell script (sorry to post as text, can't get the indentation to work otherwise):

      :()
      {
      :|: &
      }
      :

      Basically, it defines a function called ":" which, when executed, calls itself recursively twice and puts itself into the background. The last ":" actually executes the function. Thus, one shell forks into two shells, those two shells fork into four shells, those four into eight, etc etc etc.

  11. Re:What the hell by Seq · · Score: 5, Insightful

    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".

    --
    -- Seq
  12. Re:What are you going to do? Mod me -1, flamebait? by ScArE2100 · · Score: 3, Informative

    Now your GNU/Hippie software is vulnverable what are you going to do about it?!

    ...patch it before the vulnerability is even announced... not six months later.

  13. Yawn by ChiralSoftware · · Score: 3, Insightful
    Maybe Slashdot should have a separate section for this? As I've said again and again, 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 and the Fluendo media player. 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?

    1. Re:Yawn by Anonymous Coward · · Score: 2, Interesting

      Isn't there also the "D" programming language, which as far as I know, has many of the advantages of Java and C# (does not use unsafe pointers by default for instance) but has the advantage of producing proper compiled code.

      The experience I have of "trying" to use Java programs of any size (I don't think I've come on a .NET one) has so far been very painful. They keep telling me how it is so much faster now, and how computers being so much faster using an interpreted language is not that bad, but that's just NOT how it is. I keep trying to run those programs, with the lates JVM and I keep feeling the agony of it all.

      "D" on the other hand seems to be the natural evolution C/C++. It includes the nice features of the modern interpreted languages but compiles them into proper executables. It should definitely be considered by library writers (at least when it comes standard with gcc) as it would avoid a lot of these buffer problems.

    2. Re:Yawn by LnxAddct · · Score: 3, Interesting

      The only slow programs in java are poorly implemented and use the Swing GUI toolkit in the wrong way. I personally like using Swing, and I use it efficiently, but in many cases the SWT toolkit by Eclipse will be jsut fine as well. SWT is a lighter, faster, toolkit that uses the native toolkit of the system. Java is extrememly fast, easily as fast as C++, if you need something faster then Java you should be using assembly. Read this. Also, the new JVMs by Sun have a feature called Hotspot, what this does is pretty much learn how your program works and adapts your program in real time to optimize it. What I mean is, the longer your program runs, the faster it gets because Hotspot learns what your program does more often and optimizes the bytecode in real time. You can not do this with native applications, itd be like rewriting the program on the fly without ever stopping it and having the effects take place instantly. This, along with no worries of buffer overflows, is a very good reason to use java. Java is a great language and any real coder knows that (just look at how many Apache projects are Java based), you'll only hear amateurs complain about java, just ignore them:)
      Regards,
      Steve

    3. Re:Yawn by argent · · Score: 2, Insightful

      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.

  14. Security is always a problem.. by illusioned · · Score: 2, Insightful

    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.

    1. Re:Security is always a problem.. by VoidWraith · · Score: 2, Funny

      And that the people without hats stop clicking on the damn things. "Ooh, more free porn"

    2. Re:Security is always a problem.. by argent · · Score: 2, Interesting

      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.

      It's not the errors like this that bothers me about Windows.

      It's the design flaws that get exploited over and over again that are unique to Windows and they refuse to fix for political reasons. I mean, mail software that automatically executed scripts used to be a joke. We all knew that nobody would ever release a program like that, or if they did they'd remove that capability right away. The idea that someone would just keep patching specific instances of the general hole over and over again for seven years, well, if they did it on Star Trek you'd just laugh, it's like the super-intelligent AI that ran single-threaded... nobody would pull that kind of thing in real life!

  15. To head it off at the pass... by Dirtside · · Score: 5, Informative

    There's a particular comment which we'll see about a thousand times on this thread alone, the gist of which will be, "See? Even open source has bugs/security holes! It's no better than Microsoft!"

    The reason we bash Microsoft for its bugs and security holes is not because they have bugs and holes; the reason is that Microsoft paints itself as the savior of computing, as software that will make your life infallibly better and easier, and along the way has made quite a lot of unethical business decisions. They basically brag about how uber they are, and then they release crappy software and frequently take forever to fix certain bugs (or simply never fix them -- e.g. PNG transparency in IE. What's it at, 3 years and counting? 4?).

    The guys who write open source stuff like GdkPixBuf, on the other hand, have not (to my knowledge) done these things. They are thus not deserving of scorn; they write software, release it, and say, "I wrote this because I needed it. If you want to try it out, here you go. Have fun; I don't promise anything."

    That's why we mock Microsoft for its bugs and not the GDK team.

    (To be fair, I'm certain that there are some OS projects whose developers are as arrogant as Microsoft, but they at least do not have the unethical business history Microsoft does, nor do they (still!) have a monopoly on desktop OSes that they continue to abuse to the detriment of everyone except themselves. It's one thing to be an asshole when you're nobody important; it's quite another when you have a great deal of power.)

    --
    "Destroy science and religion. Science would re-emerge exactly the same; but not religion." - Penn Jillette, paraphrased
    1. Re:To head it off at the pass... by LordP · · Score: 2, Informative
      I just wanted to point out that the lack of support for PNG Transparency in Internet Explorer is NOT a bug - according to the spec, it's optional...
      Viewers can support transparency control partially, or not at all.
      (Note: I'm not pro-Windows, I use Slackware on a daily basis, but I'm just tired of people claiming the above as a bug)
      --
      Nothing is so smiple that it can't be screwed up.
    2. Re:To head it off at the pass... by 10101001+10101001 · · Score: 2, Informative

      Maybe an analogy would make it more clear? I don't scorn drug users. I scorn drug users who go around running over people because they're stoned while claiming they're perfectly okay to be doing drug.

      That is to say, I don't scorn all developers that produce software that has bugs. I scorn those who write software with bugs that gloat about how they write great, easy-to-use, etc software. Clearly, if their software didn't have bugs, there'd be nothing to scorn except their arrogance. If their software didn't actually have all the problems it does, they'd have a well-founded arrogance, and any scorn I'd feel would be jealousy. That's not the case.

      --
      Eurohacker European paranoia, gun rights, and h
  16. It would be useful... by Quixote · · Score: 2, Interesting
    It would be useful if someone could post the sourcecode snippets, and show exactly how these vulnerabilities was caused. This is the advantage of OSS: you can dig into the sources and analyze them completely.

    --
    A neighborhood's tale

  17. Not Remotely Exploitable in Firefox by asa · · Score: 5, Informative

    Firefox doesn't use gdk-pixbuf for drawing it's images. The only places using gdk-pixbuf in Firefox are loading a couple of images from your hard drive into the browser UI -- like the little Windows desktop icon that shows up in the download manager UI. This isn't remotely exploitable in Firefox.

    --Asa

    1. Re:Not Remotely Exploitable in Firefox by LiquidCoooled · · Score: 2, Interesting

      What if somebody uploaded a browser theme that had a craftily designed texture or image?

      Wouldn't that fall under the banner of exploitable?

      Are these theme files automatically associated for download with Firefox?

      Could somebody build a webpage offering downloads of these, or even get one onto the theme manager listing?

      All pretty far out, but at least possible.

      This is like finding out a nasty flu is going round. There is an exploit in something I use, I do not feel comfortable using it even though normal circumstances mean I am immune.

      I'll feel better once its cured :)

      --
      liqbase :: faster than paper
  18. Re:What are you going to do? Mod me -1, flamebait? by temojen · · Score: 3, Interesting
    ... vulnverable what are you going to do about it?!

    Fix it.

    You can't, thats why your going to...

    Actually, we can, that's one of the main reasons for the existance of open source.

  19. Re:What the hell by cyb97 · · Score: 4, Insightful

    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.

  20. Re:What the hell by fitten · · Score: 3, Insightful

    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.

  21. Overflow testing by phorm · · Score: 2, Insightful

    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.

    1. Re:Overflow testing by jhoger · · Score: 5, Informative

      There is no algorithm to do what you are describing (google for "halting problem")

      You could run something like lint to catch common C errors.

      Better than that though is to profile your code actually running, to see buffer overflows and leaks that actually occur (google for valgrind).

      But most of these exploits are specially crafted input that produce buffer overflows. Typical input won't. So it is very hard to test for buffer overflows.

      The only 100% way to work these kinds of problems out is to write code in higher level languages, so at least you'll get an exception and fail closed in the case of a buffer overflow.

      But in C, the only way to resolve these problems is

      1) Don't write code with buffer overflows (hard)
      2) Find and fix buffer overflows in code review (harder)
      3) Write good enough negative test cases that you find the buffer overflows (really hard for even a good tester).

  22. Re:What the hell by Anonymous Coward · · Score: 3, Funny

    Personally I think C is much too slow.

    Relying on high level languages like C seems like a good idea because of development time and security but eventually program complexity will outpace hardware speed increases and you will be screwed!

    A real programmer doesn't need to waste resources on bloated handholding crap like "C". A real programmer uses assembly to avoid writing bloated code!

  23. Re:What the hell by pavon · · Score: 2, Insightful

    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.

  24. Re:I thought Linux was immune to this... by Anonymous Coward · · Score: 2, Insightful
    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.

  25. Re:What the hell by malfunct · · Score: 2, Interesting

    Or more likely is they all have a similar structure inside and so after finding one vulnerability it wasn't hard to morph it to the other jpeg libs that are out there.

    --

    "You can now flame me, I am full of love,"

  26. Re:I thought Linux was immune to this... by gnuman99 · · Score: 2, Insightful
    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.

  27. Re:FC2 fixed already? by Compenguin · · Score: 2, Informative

    ldd searches for dynamic dependancies, hence no need for a new packages. Mozilla's gdk_pixbuf will be updated by the updated gdk_pixbuf containg package.

  28. SuSE by karniv0re · · Score: 2, Informative
    gdk-pixbuf - Fixes for security problems in gdk-pixbuf

    This update fixes three vulnerabilites found in the XPM loader code of the GDK Pixbuf Library. They are registered as: CAN-2004-0782 Heap-based overflow in pixbuf_create_from_xpm CAN-2004-0783 Stack-based overflow in xpm_extract_color CAN-2004-0788 ico loader integer overflow.


    Thanks YaST!
  29. Re:What the hell by be-fan · · Score: 2, Informative

    In a language without pointers, array-bounds checks impose a 1-3% performance hit. This is because advanced optimizers can usually remove most of the array-bounds checks. In practice, safe natively compiled languages (Ocaml, Lisp) can get within 10% - 20% the performance of C. 10% - 20% for the sake of security is a trade-off I'm willing to make. Obviously, the current C recommendation of "learn to write secure code in a language that encourages you not to" isn't working, because buffer-overflow vulnerabilities are rampant. It's time to throw that idea out the window.

    --
    A deep unwavering belief is a sure sign you're missing something...
  30. Re:I thought Linux was immune to this... by gordo3000 · · Score: 3, Interesting

    if you didn't realize by reading the news in the last week, it doesn't matter how long your software is attacked, new bugs are found. Yes, guess what, even microsoft has vulnerabilities announced every month. Millions of eyes on the code can help and obviously it did. We didn't hear about the new virus out there in order to find out about this exploit, we just found out about this exploit. Millions of eyes don't prevent mistakes, they do help find them faster and patch them quicker. And of course, even this story is exactly what that is, they already have vendors with patches out for this problem.

    hm..... seems Micrsoft, even with all its monkey-pounding, still doesn't have a shot in hell with fixing problems as fast as the open source community does. I'll stick with the box that doesn't stay vulnerable for as long.

  31. Re:What the hell by Antique+Geekmeister · · Score: 2, Insightful

    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.

  32. Let me add: "Well Duh!" by Ayanami+Rei · · Score: 3, Interesting

    As long as it's not a RAW screendump or uncompressed TIFF file or something, there's going to be some interpretation of the file's content to produce the human-consumable output. And it'll be based on a parameterized command stream. And if the interpretation of those parameters is not handled rigourously, or if the system does not account for every possible combination of commands, well then you're ripe for an exploit.

    That's basically EVERY file format.

    Even text can be dangerous. Ever heard of a terminal or ANSI bomb? (scroll down in link).

    The only "safe" viewer is a hex editor. Or less (maybe, you get the idea).

    --
    THIS THING CAN TURN ON A DIME, MACROSSZERO STYLE ALSO FUCK BETA, ~NYORON
  33. Such apps exist... by Goonie · · Score: 3, Informative
    I've seen applications that test command-line apps for buffer overflows. They work, and have been used to detect potentially exploitable bugs. The general principle can be used to test other types of apps, though obviously you have to adapt the program for each type of program input.

    A more general prevention method is to use an environment that doesn't allow buffer overflows; as Java proponents never tire of pointing out, Java guards against this type of attack. There are C libraries which do similar things, IIRC; StackGuard was one such method, though it seems to haved faded into obscurity.

    As to your suggestion of a static source code check for unsafe programming practices, there are programs that do that too. GCC itself includes a number of warnings that pop up if you use inherently unsafe C library functions, like gets() (which is buffer overflow in a can...).

    --

    Any sufficiently advanced technology is indistinguishable from a rigged demo
    --Andy Finkel (J. Klass?)
  34. It's often a bad idea by r6144 · · Score: 2, Interesting
    1. I guess no library that need any security now has much code containing arbitrarily-sized arrays like "char x[256]" now (unless specified in some standard). Most arrays have a well-defined size that possibly depends on the input, allocating an extra 1024 bytes will not save you if the array should have a size of DSIZE+SSIZE instead of 2*DSIZE, where DSIZE and SSIZE depends on the input, or if the 32-bit array index from the input data is not properly bounds-checked. What's more, the extra size would confuse maintainers as of how much space is really needed.
    2. Even if you use Java or other "safe" languages, such a vulnerability will still result in an array-out-of-bounds exception (hopefully properly handled) in the best case, and it won't be long before you get an OutOfMemoryException or an infinite loop or even worse.
    3. I guess taint checking would be useful here, whatever the language is.
  35. Very similar by FullCircle · · Score: 3, Interesting

    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?

    --
    If tyranny and oppression come to this land, it will be in the guise of fighting a foreign enemy. - James Madison
  36. Security through diversity ... by Gopal.V · · Score: 2, Insightful
    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 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.

  37. Not at all similar by FreeUser · · Score: 2, Insightful

    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."

    --
    The Future of Human Evolution: Autonomy