Stories
Slash Boxes
Comments

News for nerds, stuff that matters

Major Security Hole In Samsung Linux Drivers

Posted by kdawson on Wed Jul 18, 2007 06:55 AM
from the drive-a-truck-through dept.
GerbilSoft writes with news of a major security hole in Samsung's proprietary Linux printer drivers. From the Ubuntu Forums: "Just to inform you about a recent post on the French Ubuntu forum about Samsung drivers (sorry, in French). [Google translation here.] It appears that Samsung unified drivers change rights on some parts of the system: After installing the drivers, applications may launch using root rights, without asking any password. What is more, you may be able to kill your system, by deleting system components, generally modifiable only by using sudo." GerbilSoft adds: "Among the programs that it sets as setuid-root are OpenOffice, xsane, and xscanimage."
This discussion has been archived. No new comments can be posted.
Display Options Threshold:
The Fine Print: The following comments are owned by whoever posted them. We are not responsible for them in any way.
  • Lazy Design... (Score:5, Insightful)

    by Azuma Hazuki (955769) on Wednesday July 18, @06:57AM (#19898995)
    This sounds like a cheap hack. There is no need for these things to be setuid root, not on the program level. Sounds like someone is used to programming Windows drivers...

    I'm tempted to infer something sinister about this, but then I remember the old adage "never attribute to malice what can be explained by stupidity." It keeps your blood pressure nice and low.
    • Re:Lazy Design... by jimpop (Score:1) Wednesday July 18, @07:12AM
    • Flawed Design... by krischik (Score:2) Wednesday July 18, @07:29AM
      • Re:Flawed Design... by Anonymous Coward (Score:2) Wednesday July 18, @07:37AM
      • Re:Flawed Design... (Score:5, Informative)

        by morgan_greywolf (835522) on Wednesday July 18, @07:42AM (#19899359)
        (http://stylus-toolbox.sf.net/ | Last Journal: Tuesday May 15, @11:50AM)
        I'm going to reply to your post backwards, but you'll see why.

        Unix security if just flawed and the flaw is called "root".


        There is a fix for this flaw. It's called 'groups.'

        Only when the little bugger of an hotplug-manager changes the user id for the scanner device to the logged on user. Which still only gives one user access to the scanner. Have my Wife remote logged in and only one of us can use the scanner.


        This is distro-dependant. On Ubuntu, scanner access is controlled by groups. Want a user to be able to scan? You add them to the scanner group. You want someone to have access to burn CDs/DVDs? You add them to the cdrom group. If the scanner device is owned by any user, and owned by the group scanner, the permissions on the scanning device are set to group read/write, and both you and your wife are in the scanner group, then you both have access to the scanner. Try it yourself. Problem solved.

        BTW--with SANE, the best way to have two people access the same scanner is via the saned network sharing mechanism, which allows other systems using xsane (or other sane front-end) to access the scanner over the network without having to remote login.
        [ Parent ]
      • Re:Flawed Design... by cortana (Score:2) Wednesday July 18, @08:02AM
    • Re:Lazy Design... by jkrise (Score:2) Wednesday July 18, @07:31AM
      • Re:Lazy Design... (Score:4, Informative)

        by B'Trey (111263) on Wednesday July 18, @08:01AM (#19899579)
        I can't tell you why the driver did what it did. However, from what I've read, the driver actually moves binaries to new locations and replaces them with a startup script which is set to run suid. That's way, way, way over the line. It breaks lots of stuff, like updates and patches. Someone doesn't deserver to be fired. Someone deserves to be tarred and feathered and banned from ever touching a computer again.
        [ Parent ]
    • Re:Lazy Design... (Score:4, Insightful)

      by EveryNickIsTaken (1054794) on Wednesday July 18, @07:45AM (#19899383)

      Sounds like someone is used to programming Windows drivers...
      No, it merely confirms that there are lazy programmers creating crap code for all OSes, including Linux.
      [ Parent ]
    • Re:Moronic Managers by thegrassyknowl (Score:3) Wednesday July 18, @07:53AM
    • Re:Lazy Design... (Score:5, Interesting)

      by a.d.trick (894813) on Wednesday July 18, @09:25AM (#19900663)
      (http://terminate.sourceforge.net/)
      I think lazy is pretty generous. Putting setuid root on something as powerful as openoffice is flat-out retarded, period. These guys are driver writers, they should know better than this. I mean they, really ought to know better than this. It would be like Red hat dumping ssh and recommending telnet for remote shell access and transfer of sensitive information.

      I don't see any reason to think something malicious of it, but I think this goes beyond stupidity. It's not quite as bad as distributing rootkits with your CDs, but I think it's getting there.
      [ Parent ]
    • Re:Lazy Design... (Score:4, Insightful)

      by Liquidrage (640463) on Wednesday July 18, @09:55AM (#19901121)
      A potential flaw in a linux driver from Samsung is blamed on MS, in 2 different manners no less, and it jets to +5.

      Classic /.
      [ Parent ]
    • Re:Lazy Design... by kungfoolouie (Score:1) Wednesday July 18, @12:59PM
    • Re:Lazy Design... by fuliginous (Score:1) Friday July 20, @06:39AM
    • 3 replies beneath your current threshold.
  • It seems extremely dangerous that a user can install something like that, with that kind of effects. Very insecure indeed. Can anyone explain why in the whole world something like this could ever happen, or is in fact an exploit/virus/worm?
  • Windows coders (Score:5, Insightful)

    by erroneus (253617) on Wednesday July 18, @06:59AM (#19899011)
    (http://slashdot.org/)
    If I'm not mistaken, this is how Windows got as bad as it is.

    This particular incident cannot be protested enough. If this sort of thing becomes common, End-user Linux will become as corrupted as Windows.
    • Re:Windows coders by suv4x4 (Score:2) Wednesday July 18, @07:10AM
      • Re:Windows coders by jkrise (Score:2) Wednesday July 18, @07:22AM
      • Re:Windows coders by CaptnMArk (Score:2) Wednesday July 18, @07:30AM
      • Re:Windows coders (Score:5, Interesting)

        by erroneus (253617) on Wednesday July 18, @07:34AM (#19899277)
        (http://slashdot.org/)
        No, that is not my point.

        As the PC developed, IO calls were to be linked through the BIOS. The idea was that each device was to have a ROM that linked itself to the system's BIOS and that there would be a more unified system for handling I/O. Well, for most people, BIOS wasn't fast enough so people started writing code to work around it. And that's where the PC's "bad programming habits" began and it just got worse from there.

        Now, instead of people using the Windows API properly, people are using undocumented APIs that are subject to undocumented change, people are still trying to squeeze more performance from their apps by moving code into ring-0 virtual driver code. If you don't already know, "ring-0" means the code has access to the entire machine and all memory. And when apps misbehave, they are flying without a net since the ring-1 and above offer levels of "protection" from misbehaving or malfunctioning apps.

        This culture of performance over stability and proper coding methods has undermined the security and stability of Windows. I'm not going to assert whether or not Microsoft is partly to blame or has any blame in this. But I will say that Windows coders have bad habits that are quite common and prevalent.

        As Linux coders grow in numbers, it is more and more important that things like abusing root or setting up kernel modules unnecessarily should be protested and prevented at every turn. To not fight it could result in the same problems and reputation that Windows now enjoys.
        [ Parent ]
        • Re:Windows coders by suv4x4 (Score:2) Wednesday July 18, @10:30AM
          • Re:Windows coders (Score:4, Interesting)

            by erroneus (253617) on Wednesday July 18, @11:03AM (#19902297)
            (http://slashdot.org/)
            Signing drivers has been proven to be ineffective for several reasons:

            1. It has been shown that the signature can and has been forged
            2. Unsigned drivers are still installable with only a warning given to the user at install time and the user has little to no choice but to install the unsigned driver if they wish to make use of whatever it is they are using.

            the only benefit is "user awareness" and the effectiveness this may yield will vary by the quality of the user... and we more or less know what that leads to.

            As far as your assertion that Linux can't do that? I'll leave that alone for now... you're about to be flooded with a number of other responses that are likely to be worded better than I ever could. But to be short, Linux can't "sign" drivers. Instead driver modules are to be compiled to match the specific kernel and will refuse with NO option by the user to over-ride that decision. So in a way, it's actually more secure. (This excludes the existence of DKMS or dynamic kernel module support which, if the user installs it, can neatly override this particular behavior from the kernel in a way but the kernel module/driver itself needs to be created within the framework of DKMS itself and all manner of other complications...so....)
            [ Parent ]
        • Re:Windows coders by weicco (Score:2) Wednesday July 18, @11:46AM
        • Re:Windows coders by fatphil (Score:1) Thursday July 19, @04:21AM
      • Re:Windows coders by rbanffy (Score:2) Wednesday July 18, @07:53AM
      • Re:Windows coders by ajs318 (Score:2) Wednesday July 18, @08:23AM
      • Re:Windows coders by Omnifarious (Score:2) Wednesday July 18, @08:34AM
      • Re:Windows coders by sjames (Score:2) Wednesday July 18, @10:38AM
      • Re:Windows coders by suv4x4 (Score:2) Wednesday July 18, @08:23AM
      • 1 reply beneath your current threshold.
  • suid is evil! (Score:2, Informative)

    by PetriBORG (518266) on Wednesday July 18, @07:01AM (#19899017)
    (http://petri.subnova.com/)
    Once more boys and girls, say it with me now, SUID IS EVIL! :-)
    Nothing but the programs that absolutely have to should be run as root.

    Is there an English (not some auto-translated forum) site covering this? I think its talking about this suid run printer driver [openprinting.org]?

  • Thank you! (Score:5, Funny)

    by mwvdlee (775178) on Wednesday July 18, @07:02AM (#19899031)
    (http://www.vanderlee.com/)
    A big "Thank You!" to Samsung for demonstrating that propriatory code is inherently less secure than open source, if only because you can (could) get away with insecure code.
  • Slipping (Score:1, Flamebait)

    by Joebert (946227) on Wednesday July 18, @07:03AM (#19899039)
    Am I imagining things, or are systems that are supposed to be more secure than others getting caught with their pants down alot more lately ?

    Maybe all the boasting has got people feeling too comfortable, letting their guard down.
    • Re:Slipping by Slashcrap (Score:1) Wednesday July 18, @08:05AM
      • Re:Slipping by Joebert (Score:2) Wednesday July 18, @08:15AM
    • Naw. by Almahtar (Score:2) Wednesday July 18, @11:35AM
    • Re:Slipping by Tanuki64 (Score:2) Wednesday July 18, @11:47AM
  • What were they trying to do? (Score:2, Funny)

    by Anonymous Coward on Wednesday July 18, @07:04AM (#19899045)
    What were they trying to do that made them think OpenOffice needs to be setuid:root?

    Windows ME(tm)(r) Security(tm)(r)(c)(*) now available on Linux, brought to you by Samsung(tm)(r)
  • Install applications as root (Score:5, Interesting)

    by Simon (S2) (600188) on Wednesday July 18, @07:06AM (#19899067)
    I find it very disappointing anyway that anything you install on ubuntu is installed as root (at least that is the default way of doing it). Wouldn't it be übercool to be able to install applications as the local user, and drivers maybe as the "driver" user? I still think The Zero Install system [0install.net] is a nice and secure way to install software, and maybe one day we can extend this to install drivers as well, so that root access will almost never be required (a bit like Plan 9, or what SE Linux is trying to do).
  • by RAMMS+EIN (578166) on Wednesday July 18, @07:06AM (#19899071)
    (http://inglorion.net/ | Last Journal: Thursday October 06 2005, @07:17AM)
    quoi le baise? (senseless translation of 'wtf')

    Does anyone have _any_ idea why they did this?

    Fortunately, I don't use the drivers supplied by Samsung for my printer. They are crap. The foomatic one works just fine, though.
  • to be fair (Score:2)

    by SolusSD (680489) on Wednesday July 18, @07:10AM (#19899095)
    (http://www.solussd.com/)
    no user is going to be able to install such a dangerous "driver" without root access in the first place-- anyone can build a program, intentionally or accidently, that comprimises a system when ran/installed as root.
    • Re:to be fair (Score:5, Insightful)

      by Anonymous Coward on Wednesday July 18, @07:23AM (#19899197)
      no user is going to be able to install such a dangerous "driver" without root access in the first place-- anyone can build a program, intentionally or accidently, that comprimises a system when ran/installed as root

      Yes, but when you install a driver, you normally assume that it's not going to make your system insecure. Why should it? Only a very badly designed driver would deliberately break your system security.

      Sometimes drivers do accidentally introduce security problems. The Nvidia drivers for X have done this in the past, for example. In those cases, it's not bad design, it's an oversight of some sort, like a buffer overflow.

      But this is not an oversight. A deliberate design decision has been made to break the Linux security model. A very special type of stupidity is involved: one that includes an understanding of the effects of the setuid bit, but excludes an understanding of the security implications.

      Samsung should investigate this fully - who knows what other retarded decisions have been made by these guys?
      [ Parent ]
  • Ubuntu Forums Link (Score:1)

    by cuby (832037) on Wednesday July 18, @07:12AM (#19899115)
    One buddy posted on Ubuntu forums:

    http://ubuntuforums.org/showthread.php?t=500702 [ubuntuforums.org]
  • It come out... (Score:5, Informative)

    by dmayle (200765) on Wednesday July 18, @07:15AM (#19899143)
    (http://douglas.mayle.org/ | Last Journal: Monday March 05 2007, @12:01PM)

    For those who can't read French, the Ubuntu forum is just a posting of a link to another forum where it was noticed. The posting, along with the interesting source can be found at http://linuxfr.org/forums/15/22562.html [linuxfr.org] The interesting parts are:

    wrap_setuid_third_party_application xsane
    wrap_setuid_third_party_application xscanimage

    wrap_setuid_ooo_application soffice
    wrap_setuid_ooo_application swriter
    wrap_setuid_ooo_application simpress
    wrap_setuid_ooo_application scalc

    The script copies the affected application's executable to one with a .bin extension, and replaces it with an suid wrapper script. This is undoable, but god, what a mess!

    Okay, I couldn't overcome the lameness filter, go to the source to see for yourselves...

  • Bad... (Score:1)

    by Jaaay (1124197) on Wednesday July 18, @07:17AM (#19899151)
    but this was the first time I heard of Samsung having native Linux drivers so as long as they stop screwing up peoples systems they might get some good publicity out of this ironically though I'm not sure if they deserve it.
  • by Tanuki64 (989726) on Wednesday July 18, @07:24AM (#19899203)
    ...I would not call this a mere bug. This was an intentional attempt to create a backdoor. Come on, who believes that a very specific driver of all things changes the permissions of a very unspecific program like OpenOffice? Something like that does not happen by accident.

    Ok, I might be wrong with my accusation, but in this case I'd say I don't have to prove it, but Samsung has to prove its innocence by making public in details how exactly it came to this 'bug'.
  • English Non-Google'd Translation (Score:4, Informative)

    by VE3OGG (1034632) <VE3OGG.rac@ca> on Wednesday July 18, @07:45AM (#19899377)
    Hello,

    After I installed the unified drivers for my Samsung printer/scanner, I had the unwelcome surprise of discovering that OpenOffice now opens as root, and not only that but did not ask for my password!

    As a result, all documents I created were saved in the /root/ directory with super user rights. Practical and super secure!

    I attempted to re-install .Xauthority without success.

    The beast (the problem) is occuring under Ubuntu 7.04 under Gnome.

    Thank You.

    Bonjour,

    Après avoir installé les drivers unifiés de Samsung pour gérer mon imprimante scanner, j'ai eu la très mauvaise surprise de constater que la suite openoffice s'ouvrait en root et ceci sans que me soit demandé le moindre mot de passe !!!

    Du coup, les documents que je crée s'enregistrent dans le dossier /root/ avec des droits de super utilisateur. Pratique et super sécure !

    A tout hasard j'ai réinitialisé le .Xauthority : aucun succès.

    La bête est sous Ubuntu 7.04 et gnome. En attendant vote aide, je cherche et tente de résister au désespoir le plus sombre !

    Merci
    • 1 reply beneath your current threshold.
  • Time to Get Heavy (Score:5, Insightful)

    by ajs318 (655362) <sd_resp2&earthshod,co,uk> on Wednesday July 18, @07:48AM (#19899425)
    The proprietary driver fiasco has gone on far too long. It's time to stand up and say Enough Already!

    Let's all get writing to our elected representatives and demand that hardware manufacturers be obliged, by law, to provide detailed specifications which would enable a sufficiently-competent programmer to write a driver program enabling any of the features of their product to be used on any sufficiently-capable computer.

    Failure to do this places the rightful owners of hardware at a disadvantage. They can only use it in conjunction with certain Operating Systems. They are restricted to using it as the manufacturer thought fit. If a driver has a programming flaw, the user's computer can be compromised. If the Operating System is updated in such a way as the driver no longer works, the user is at the mercy of the manufacturer to release a new version of the driver -- or else the hardware is unusable (or at best, usable only through a bodge involving multi-booting: at the boot prompt, type linux to be able to use the Internet, or linuxOLD to be able to print).

    It's unfortunate, but this measure really needs to be brought in through legislation, because manufacturers will not do it voluntarily. There are two reasons: (1) they are paranoid of competitors {despite the fact that their competitors are busy reverse-engineering their products in secret while they reverse-engineer the competitors' products} and (2) they habitually lie through their back teeth in their advertising literature about the capabilities of their hardware, and such lies would be exposed with disclosure (e.g. a camera with a 2 megapixel image sensor, spitting out JPEG images interpolated up to 6 megapixels).
  • Blown out of proportion? (Score:5, Informative)

    by Jerry (6400) on Wednesday July 18, @07:58AM (#19899535)
    Here is a posting to the Ubuntu forum that is SEVEN MONTHS old and refers to postings A YEAR OLD!

    Printer drivers need to be installed with world execute permissions so that all users on the system can access the printer. The Samsung hacker's method of doing this, converting them to 4755 bin files and setting the original name as a link to the bin files, is one way of doing that -- IF his "unwrap" function had worked properly. That's the bug. Listed in the posting are files whose permissions need to be modified after the driver is installed.

    #1
    Old January 18th, 2007
    tweedledee tweedledee is online now
    Way Too Much Ubuntu

    Join Date: Dec 2006
    Beans: 252
    Ubuntu 7.04 Feisty Fawn User
    HOWTO Install Samsung Unified Printer Driver
    I had a fair amount of trouble initially getting my Samsung printer installed completely, but I finally have it all done, so here's a mini-guide for those who might benefit.

    NOTE: for the last few months, the Samsung website has been utilizing some buggy Flash code that will crash many (all?) Linux browsers that have Flash installed - hopefully they will fix this soon, but they don't seem in any hurry. Either use a secondary browser that does not have the Flash plugin installed (e.g., if you mainly use Firefox, you could use Epiphany (Gnome) or Konqueror (KDE)) or download the drivers via another computer/OS. Alternatively, again if you use Firefox, you can install the "flashblock" extension, usually this prevents the crash (and is useful for many of the other websites that have been appearing recently causing the same behavior, although it's not 100% successful).

    EDIT: The newest (as of this writing) driver from Samsung (20070324...) appears to solve some of the mfp/xsane issues, but also appears to missing a couple of library files. See post #23 for details. Also see posts #27-29 for details on ...plc errors and solutions.
    Post #35 suggets the 200704.... drivers have resolved this issue, so this may now be irrelevant.

    First, a disclaimer: much of the information I used came from this thread: http://www.ubuntuforums.org/showthread.php?t=28774 7 [ubuntuforums.org]. Another good source of information is http://www.linuxprinting.org./ [www.linuxprinting.org] Finally, I did this using the 20060719... and 20070125.... drivers; newer (or older) drivers may require some tweaks. Also, especially if you have a monochrome, non-duplexing, non-multifunction printer, you very well may have success with a generic post-script printer as a driver, without having to install the Samsung drivers. Also note that for my printer, pretty much all functions except duplex control worked even if I skipped steps 2-4 below (i.e., don't install the driver, only the relevant .ppd file) - which also has the advantage of not needing to fix xsane (additional step 2).

    This works for my CLP-550; similar steps seem to work for other Samsung printers not supported out-of-the-box with the drivers available in a fresh Ubuntu install. This is NOT a multi-function, multi-functions may require additional steps (but are discussed in other threads, a quick search should bring them up). Posts below from other users have reported sucess (sometimes with a couple of small modifications) with: ML-2510 (# 5, 14, 16, 26), ML-2510/XEU (# 18 ), ML-2571n (# 12), SCX-4200 (# 10), SCX-4521F (# 11), CLP-300 (# 35).

    1. Download and untar the driver from Samsung's website; for this example I will assume you untar it to ~.
    2. Open a terminal and navigate to ~/cdroot/Linux. I had to "chmod +w install.sh" to give write permissions, but that may be unusual. Edit install.sh as follows:
    a: change the first line from "#! /bin/sh" to "#! /bin/bash" (without the quotes)
    b (possibly not needed): change the line that includes "guiinstall.bin" (search for it, it's around line 1277) to eliminate the ".bin" (i.e
  • It also messes with the lpr command (Score:2, Interesting)

    by jim9000 (740810) on Wednesday July 18, @08:15AM (#19899719)
    I have a Samsung ML-2251N printer and the installer also replaces the standard lpr command by symlinking it to a script called slpr, which brings up a windows-like print GUI when you try to print things. This is highly annoying as it doesn't behave exactly like lpr and requires a GUI. It may also be SUID as well.

    You can remove all of the SUID crap and point /usr/bin/lpr back to the right place. The proprietary driver still works and is much more secure. It prints faster with the Samsung driver than with the open source PCL driver. One day I might add true PostScript capabilities to it to try to work around both issues.

    Keep in mind that the printer driver's control panel and other stuff that Samsung installs is also SUID. The SUID garbage happens even when installing a regular printer without the scanning capabilities.

    I like that they at least tried to write a Linux driver, which is many steps further than a lot of companies, but it does need to stop stomping all over the system like a Windows application would.
  • by nbahi15 (163501) on Wednesday July 18, @08:18AM (#19899753)
    (http://cameronpalmer.com/)
    Any printer that requires more than a PPD and CUPS to operate is suspect.
  • Great! (Score:2)

    by markov_chain (202465) on Wednesday July 18, @08:18AM (#19899769)
    It can join the good company of General Protection Fault, or Kernel Panic
  • Samsung makes printers? That people actually buy?
  • by vtcodger (957785) on Wednesday July 18, @08:31AM (#19899891)
    This may not be that big a problem -- at least for the Samsung color laser printers. Why not? Because the Linux installer for those printers seems to be unusable on many new Linuxes. The installer is dynamically linked to libraries that are no longer used and it apparently doesn't install properly when newer versions of the libraries are linked. It took me a number of days to get a CLP-300N printer working with the Samsung drivers. There is an alternate open source driver called foo2qpdl that does work.

    My somewhat rambling notes on this subject are on the internet at http://donaldkenney.110mb.com/LPRINTER.HTM [110mb.com]. I plan to clean them up and correct the consistent misspelling of kubuntu ... someday. I posted the notes because I couldn't find any explanation anywhere of the Samsung message 'unable to find a suitable printer' or any thoughts on what to do about it other than to return the printer to the store.