Forgot your password?
typodupeerror
Security Linux

Bug In Most Linuxes Can Give Untrusted Users Root 281

Posted by kdawson
from the patchin'-place dept.
Red Midnight and other readers brought to our attention a bug in most deployed versions of Linux that could result in untrusted users getting root access. The bug was found by Brad Spengler last month. "The null pointer dereference flaw was only fixed in the upcoming 2.6.32 release candidate of the Linux kernel, making virtually all production versions in use at the moment vulnerable. While attacks can be prevented by implementing a common feature known as mmap_min_addr, the RHEL distribution... doesn't properly implement that protection... The... bug is mitigated by default on most Linux distributions, thanks to their correct implementation of the mmap_min_addr feature. ... [Spengler] said many other Linux users are also vulnerable because they run older versions or are forced to turn off [mmap_min_addr] to run certain types of applications." The register reprints a dialog from the OpenBSD-misc mailing list in which Theo De Raadt says, "For the record, this particular problem was resolved in OpenBSD a while back, in 2008. We are not super proud of the solution, but it is what seems best faced with a stupid Intel architectural choice. However, it seems that everyone else is slowly coming around to the same solution."
This discussion has been archived. No new comments can be posted.

Bug In Most Linuxes Can Give Untrusted Users Root

Comments Filter:
  • And? (Score:5, Interesting)

    by FlyingBishop (1293238) on Wednesday November 04, 2009 @10:16AM (#29977604)

    Torvalds:

    That does not look like a kernel problem to me at all. He's running a setuid program that allows the user to specify its own modules. And then you people are surprised he gets local root?

    Am I missing something? Torvald's reply actually sounds pretty reasonable to me here. It might be nice if this exploit could be patched, but it seems a little preposterous to me that you could make that work in a way that doesn't leave an exploit. I'd say you need to be locking down your suid binaries more, not blaming kernel management.

  • by dkf (304284) <donal.k.fellows@manchester.ac.uk> on Wednesday November 04, 2009 @10:40AM (#29977952) Homepage

    Setuid is certainly a trade-off, but it seems a little absurd that you need full root permissions to access just the special resources "ping" needs to function. If anything, vulnerabilities like these are calls for a more fine-grained capability-based security system, that only grants the expected privileges needed for a given process to function.

    You are aware that in order for ping to work at all, it needs raw sockets so that it can write ICMP packets? Those are restricted because they allow you to spoof all sorts of network traffic (e.g., the ethernet address to IP address mapping) Which Would Be Bad.

    The only way to remove the setuid requirement from ping (apart from making your system thoroughly insecure) is to allow messages to be sent and received on raw sockets opened by non-root only if they're ICMP ECHO messages (I'm not aware of any other ICMP messages that it's useful for user code to send). Do you want to put such deep packet inspection in the kernel?

  • by tayhimself (791184) on Wednesday November 04, 2009 @10:44AM (#29978008)

    Ran off my Ubuntu 9.10 fresh installed desktop:

    #cat /proc/sys/vm/mmap_min_addr 0 ... Oh shit.

    Is it possible that you are running wine or some other emulator program. The only software similar to an emulator I have is Virtualbox on my 9.10 desktop and it still has the 65536 setting.
    Anyone else can shed light on this?

  • by Anonymous Coward on Wednesday November 04, 2009 @11:54AM (#29979228)

    Linus Torvalds called Theo and Developers masturbating monkeys. That is obviously an insult and insults are the last refuge of the out-argued. Insulting propositions obviously aren't logical but purely dialectical in nature. Doc Johnson and the philosopher Arthur Schopenhauer wrote about insults being the last refuge of the out-argued. Linux is not a good OS in my opinion so I use OpenBSD and NetBSD instead.

  • What design choice? (Score:3, Interesting)

    by Skapare (16644) on Wednesday November 04, 2009 @12:08PM (#29979490) Homepage

    Just what design choice was made (wrong) by Intel, and why is it a bad choice?

  • by rabtech (223758) on Wednesday November 04, 2009 @01:09PM (#29980714) Homepage

    What do you mean Windows requires it to work like this? On Windows accessing a NULL pointer is always an exception, no process is ever allowed to map the bottom page of memory. This has been true since Windows has existed. So in fact it is only Windows systems that are immune to this class of exploit because writing programs and kernel code vulnerable to it leads to an immediate crash.

    If you wanted to specify this invariant on Linux you could, you'd just break some existing apps that depend on it. Ironically, it seems that Wine depends on this behavior.

What this country needs is a good five dollar plasma weapon.

Working...