Slashdot Mirror


Local Privilege Escalation On All Linux Kernels

QuesarVII writes "Tavis Ormandy and Julien Tinnes have discovered a severe security flaw in all 2.4 and 2.6 kernels since 2001 on all architectures. 'Since it leads to the kernel executing code at NULL, the vulnerability is as trivial as it can get to exploit: an attacker can just put code in the first page that will get executed with kernel privileges.'"

50 of 595 comments (clear)

  1. Ahh... by clone53421 · · Score: 5, Funny

    So that's what the NULL pointers were for.

    --
    Alexander Peter Kristopeit bought his basement from his mommy for one dollar.
  2. I'm safe! by Anonymous Coward · · Score: 5, Funny

    I use Windows!

    1. Re:I'm safe! by dgatwood · · Score: 4, Funny

      Once again, my 2.0 Linux kernel is safe!

      --

      Check out my sci-fi/humor trilogy at PatriotsBooks.

  3. I don't get it... by Anonymous Coward · · Score: 5, Interesting

    Why the bloody hell isn't page 0 hard-wired to panic the kernel / SIGSEGV the userland when accessed?

  4. Summary's Useless link by Anonymous Coward · · Score: 4, Informative

    Here's the real one- linked from (mostly) useless article.
    http://archives.neohapsis.com/archives/fulldisclosure/2009-08/0174.html

  5. I can hear the OpenBSD users laughing already... by thenextstevejobs · · Score: 5, Funny

    Or I would be able to, if there were any

    --
    Long live the BSD license
  6. (from the blog) by An+anonymous+Frank · · Score: 5, Informative

    In the Linux kernel, each socket has an associated struct of operations
    called proto_ops which contain pointers to functions implementing various
    features, such as accept, bind, shutdown, and so on.
    If an operation on a particular socket is unimplemented, they are expected
    to point the associated function pointer to predefined stubs, for example if
    the "accept" operation is undefined it would point to sock_no_accept(). However,
    we have found that this is not always the case and some of these pointers are
    left uninitialized.
    This is not always a security issue, as the kernel validates the pointers at
    the call site, such as this example from sock_splice_read:
    [snip]
    But we have found an example where this is not the case; the sock_sendpage()
    routine does not validate the function pointer is valid before dereferencing
    it, and therefore relies on the correct initialization of the proto_ops
    structure.
    We have identified several examples where the initialization is incomplete:
    [snip]

  7. Local Privilege Escalation On All Linux Kernels by sofar · · Score: 5, Insightful

    sudo

    Please, this is a _local_ privilege escalation. It's not like code red infecting your box remotely. A sledgehammer is also a local privilege escalation.

    1. Re:Local Privilege Escalation On All Linux Kernels by jandrese · · Score: 5, Insightful

      The thing is, local privilege escalations can become remote privilege escalations when combined with buggy services that allow for code injection. This is especially bad for people who are forced to run services that they don't trust and thus place them in jails, only to discover that if the exploit happens at the kernel level then your jail means nothing.

      My guess is that rootkits are being updated as we speak, so get your kernels patched people.

      --

      I read the internet for the articles.
  8. Re:Security through Obscurity? by Anonymous Coward · · Score: 5, Insightful

    uh huh..and the 8 years it took to discover don't matter, eh?

  9. Re:pwned by Anonymous Coward · · Score: 5, Insightful

    If this were Windows, we'd first hear about it when our machines get owned by some malware, and then it would take months for a patch to be released. Since this is Linux, expect a fix in a week or less.

  10. Re:Security through Obscurity? by Romancer · · Score: 4, Informative

    Little faster than that:

    -
    Solution
    -

    Linus committed a patch correcting this issue on 13th August 2009.

    http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=e694958388c50148389b0e9b9e9e8945cf0f1b98

    -
    Credit
    -

    This bug was discovered by Tavis Ormandy and Julien Tinnes of the Google
    Security Team.

    --


    ) Human Kind Vs Human Creation
    ) It'd be interesting to see how many humans would survive to serve us.
  11. Re:Security through Obscurity? by amorsen · · Score: 5, Informative

    Generally people don't care about local privilege escalation on Windows. Like this vulnerability.

    --
    Finally! A year of moderation! Ready for 2019?
  12. Guys? by eexaa · · Score: 4, Interesting

    where's the source?! I want to try it. On my box.

  13. It's from April? Really? by winkydink · · Score: 5, Informative

    Then why did Linus check in a patch today to fix it?

    http://archives.neohapsis.com/archives/fulldisclosure/2009-08/0174.html

    --

    "I'd rather be a lightning rod than a seismometer." -Ken Kesey

  14. Re:SELinux? by QuoteMstr · · Score: 4, Informative

    SELinux makes the problem worse. Without SELinux, there's a variable that specifies the lowest page in memory that a process can map. If you can't put anything at address 0, jumping through a NULL function pointer isn't as big a deal.

    With SELinux on, that variable is ignored, and you can map at address 0 to your heart's content.

  15. Re:The REAL impact here by Bazman · · Score: 4, Insightful

    How can you trust that a user hasn't used a privilege escalation to install a rootkit already? You can't trust apt-get, or yum, or anything.

    Fresh install time, surely? Back to the bare metal.

  16. Re:I can hear the OpenBSD users laughing already.. by frn123 · · Score: 5, Funny

    Sure there are. And they are both laughing.

  17. Re:pwned by lukas84 · · Score: 4, Insightful

    Expect a source fix with no regression testing in a week or less. Wait months for the big distribution makers (RedHat, Novell) to release it to the masses.

    Expect people manually rebuilding their kernel in panic, having machines rendered unbootable because they decided the 250$ bucks for the iLO Advanced license wasn't worth it since Linux never crashes, etc. pp.

    Face it: IT sucks. The OS matters little.

  18. Re:Security through Obscurity? by recoiledsnake · · Score: 5, Insightful

    Does this mean that Linux was never more secure than Windows--only more obscure?

    It's hardly obscure since they could look and find it, evidenced by the fact they found it.

    Go try that with the Windows kernels!

    In addition, there is already a patch out for this, which by end of the week will be pushed down from the distro managers. We don't have to wait years after finding it for the fix to be released, as Microsoft historically does.

    In fact, why just assume this similar bug is NOT in the windows kernel? Did you check? Did any reputable security company check?
    I'm not saying it is there, only that you can't easily prove otherwise.

    *that* is the security being spoken of.

    As far as I know, only one OS claims no exploits, and that is OpenBSD.

    The transparent thing works both ways... it's easier for black hats to find holes too, by your own logic. And they can keep it secret and exploit it as long as they can. A similar bug existing in Windows doesn't prove anything and is irrelevant here. After all 'M$ can't code shit'. Linux and FOSS is commonly claimed to be more secure because of it's development model and bug free here in these parts. Any data that runs counter to this is routinely downplayed by commenters and moderators... just like your post got modded up.

    --
    This space for rent.
  19. Re:Security through Obscurity? by DavidTC · · Score: 4, Interesting

    Yes, but generally exploits get discovered by others if they are used.

    At some point, someone curious will get hacked, and wonder how the hell that happened, and track down the exploit.

    And that's not even including discovery on the cracker's side. (People he works with, etc.)

    The only way to keep an exploit a secret is to (almost) never use it. It's going to be made public within a few months of even low usage.

    --
    If corporations are people, aren't stockholders guilty of slavery?
  20. Some distros less vulnerable by default by Bandman · · Score: 5, Informative

    From http://archives.neohapsis.com/archives/fulldisclosure/2009-08/0174.html:

    -------------------
    Mitigation
    -----------------------
    Recent kernels with mmap_min_addr support may prevent exploitation if
    the sysctl vm.mmap_min_addr is set above zero. However, administrators
    should be aware that LSM based mandatory access control systems, such
    as SELinux, may alter this functionality.
    It should also be noted that all kernels up to 2.6.30.2 are vulnerable to
    published attacks against mmap_min_addr.

    I have checked my default Ubuntu and CentOS/RHEL boxes, and both of them are set well above 0:

    root@Ubuntu:/proc/sys/vm# cat mmap_min_addr
    65536

    [root@CentOS /proc/sys/vm] cat mmap_min_addr
    65536

    [root@RHEL /proc/sys/vm] cat mmap_min_addr
    65536

    1. Re:Some distros less vulnerable by default by cyphercell · · Score: 4, Informative
      --
      Under the influence of Post-Cyberpunk Gonzo Journalism
  21. Re:pwned by MaskedSlacker · · Score: 4, Funny

    Well by that logic 99% of windows users haven't used a real windows machine either.

  22. Re:Security through Obscurity? by spun · · Score: 5, Interesting

    No. If nobody knew it wasn't a security issue. I'm sure there are bugs on every OS with more than 8 years old yet to discover.

    You veered completely off track right about here: "If nobody knew"

    Seriously? Really, that's the best you could come up with? That's your apologia? How do you know nobody knew? You think the real blackhats are going publicizing their 'sploits? Blackhats these days aren't script kiddies and honest hackers, they are hard core Russian mafia doing it for cash. Your Linux systems could have been owned twelve ways from Sunday for EIGHT YEARS without you ever knowing it, and you are claiming 'it wasn't a security issue?' WTF? When did Linux get infested with idiot fanboys? Shouldn't you be slobbing all over an Apple or something? I was using Linux before you even knew what Unix was, I despise Microsoft and love open source, but a bug is a bug.

    Try this one: 'No. Because it's a freaking LOCAL EXPLOIT and nearly no-one uses Linux for multi-user systems now that everyone can afford their OWN FREAKING COMPUTER.' Good lord, kids these days, gotta teach them everything.

    --
    - None can love freedom heartily, but good men; the rest love not freedom, but license. -- John Milton
  23. Re:Security through Obscurity? by freeweed · · Score: 4, Funny

    Your post got modded up, too.

    --
    Endless arguments over trivial contradictions in books written by ignorant savages to explain thunder in the dark.
  24. Re:pwned by gmuslera · · Score: 4, Interesting

    If this was Windows we'd never hear the beginning of it. How much local privilege escalation vulnerabilities normal windows users worry about? Are the remote vulnerabilities (and the ones that don't need to escalate, as run as the current user) the ones that get lots of publicity. And you got from time to time a number big enough of remote vulnerabilities there to consider them the only ones that matters.

    Of course, if you add a local privilege escalation to a some app remote vulnerability that enables to run code, even if is with low privileges, there you have a potential remote root exploit. Is something to care about, but odds are low that a lot of systems will be affected.

  25. Re:pwned by dword · · Score: 4, Informative

    Replying to myself, with additional information for the OP: And how long have we heard about this? We're already so used to Windows exploits that we don't even care much about them...

  26. Re:pwned by AigariusDebian · · Score: 4, Informative

    And if any of us would have read the article before posting we would know that a typical one-line fix is right there in the article and has been commited into the kernel mainline yesterday.

  27. Re:pwned by amicusNYCL · · Score: 5, Funny

    Aw, cheer up little guy. I thought it was a very nice comment.

    --
    "Our two-party system is like a bowl of shit looking at itself in a mirror." - Lewis Black
  28. "Many eyes", but all of them nearsighted? by Petersko · · Score: 5, Funny

    And from all across the globe came the sound of geeks crying, for they would soon see their beloved "uptime" reset to zero.

  29. Re:It's from April? Really? by Verdatum · · Score: 5, Funny

    Yeah, that was my fault. Sorry about that. I knew it was there, I just kept putting off fixing it or telling anyone.

  30. Re:Security through Obscurity? by Vexorian · · Score: 4, Insightful
    It was fixed much faster than MS after it was announced. I guess it is 100000 times faster than your usual MS flaw. So, yeah Linux is more secure.

    Also, did you bother reading what this exploit does? It is very bad because it allows user programs to gain administrator privileges. This is insecure because it puts Linux in a category that's as insecure as all pre-vista windows computers and also the UAC-enabled-because-else-it-is-useless vista and 7 computers. That's the problem here, it moves Linux to a windows state...

    Finally, it is easier to find flaws in Linux, this increases the chances blackhats found bugs, but it also increases the chances someone else will find it in paralel, preventing your hypothetical situation...

    Ironically, it is because of some artificial obscurity that this bug was present and took so long to find. Most vulnerabilities aren't caused by obscure optimization issues, and are findable in source code, those were a non-issue thanks to the lack of obscurity. So this actually proves obscurity != security.

    --

    Copyright infringement is "piracy" in the same way DRM is "consumer rape"
  31. Re:local... remote... by Anonymous Coward · · Score: 4, Insightful

    nobody (the apache account) is a local user.

  32. Vulnerable by design by 0xABADC0DA · · Score: 5, Interesting

    In normal configs, Linux is vulnerable to this kind of problem by design because it runs unsafe programs and then for efficiency the kernel also has direct access to it's memory plus the memory for a process doing a syscall. And it's not just a NULL pointer, and preventing maps for page zero doesn't solve the problem... it just means you need to find a bug where you can corrupt a function pointer to point to mappable space.

    What this demonstrates is that the cost of isolating programs from each other by using separate memory spaces has a much higher cost than commonly understood. It either has a ~10%-20% overhead and is insecure by design (kernel map includes calling process memory space) -or- it is far slower than even that, but safe (kernel memory is completely separate from process). Computers are already faster than many users need... maybe it's finally time for an OS with a single memory space, like JavaOS or jxos, or even Singularity.

  33. Re:Security through Obscurity? by jmac_the_man · · Score: 5, Insightful
    Theoretical nefarious hackers who discovered the flaw before Travis and Julien would have been trying to hide it. Just because something isn't known doesn't mean it doesn't exist.

    Security through obscurity does mean the thought that that as long as no one knows about it, it's not an issue. Being open source doesn't make you immune to this. What would make you immune to this would be formal testing and security audits of every component, like is done on things like the space shuttle. This is generally prohibitively expensive for situations where actual life and limb danger isn't a factor, which is why no commonly used operating system implements this strict security level. Sure, having a lot of eyes looking at the Linux kernel helps (and it eventually worked in this case) but just being open source doesn't mean it's secure.

  34. Re:local... remote... by Anonymous Coward · · Score: 4, Insightful

    Local exploit in kernel + arbitary code execution exploit in network service = remote exploit.

    You know, like running WordPress.

    It would be quite an accomplishment to introduce a remote exploit directly in the kernel.

  35. Re:Security through Obscurity? by 0xABADC0DA · · Score: 4, Informative

    Yes, it's called hardware level paging ... The problem is from how the exceptional condition (null pointer access) is handled by the kernel, and not the fact that NULL was called.

    No, it's not. The problem is that the kernel also has access to the process's memory, so if the process mapped page 0 as r-x then the kernel also has that page. So when the kernel jumps to NULL through a function pointer, it runs whatever code the process put there.

    This mapping is done for efficiency because otherwise any system call would flush TLB at least *twice* and it would be slow as hell.

    Hardware memory protection is as old as dirt, but it's also a brutish fossil, symbolic of a decayed era, gratefully forgotten.

  36. Re:SELinux? by eparis · · Score: 4, Informative

    SELinux is currently weaker in this area for local users. It is stronger in this area for remote network facing daemons. See http://eparis.livejournal.com/ for all the details. Blanket statements in either direction on SELinux and NULL ptr exploits are wrong.

  37. Re:pwned by amicusNYCL · · Score: 4, Informative

    That's right. It's a trivial local exploit. Those aren't mutually exclusive.

    --
    "Our two-party system is like a bowl of shit looking at itself in a mirror." - Lewis Black
  38. Re:pwned by Jerry · · Score: 4, Informative

    In a week or less?

    Linus already patched it.
    http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=e694958388c50148389b0e9b9e9e8945cf0f1b98

    He wrote it at 8:28AM and committed it at 10:57AM this morning. Expect to see it in your repositories tomorrow, if not sooner.

    --

    Running with Linux for over 20 years!

  39. Re:pwned by amicusNYCL · · Score: 4, Informative

    Possibly, for sufficiently loose definitions of "much more".

    Linux kernel 2.0-2.6: 279 Secunia advisories, 473 vulnerabilities

    Windows 2000 Server + Windows Server 2003 Standard + Windows Server 2008: 472 Secunia advisories, 580 vulnerabilities

    It's also worth noting that kernel 2.6 alone contains 186 advisories for 352 vulnerabilities with 6% unpatched. Windows Server 2008 contains 40 advisories for 82 vulnerabilities with 0% unpatched.

    So there's the math. Keep in mind that's comparing an entire server OS with just the Linux kernel.

    We are now that picky...

    This is Slashdot. We've always been that picky.

    --
    "Our two-party system is like a bowl of shit looking at itself in a mirror." - Lewis Black
  40. Re:pwned by arndawg · · Score: 4, Insightful

    Parent is not a troll. Local Exploit still means a bug in firefox can leave your box totally "PWND!" A local exploit is more dangerous for a desktop computer than a server. but is still a very real concern.

  41. Re:pwned by alexborges · · Score: 4, Funny

    Thats what I get for sending you to do the math. Im still too lazy to go check it out and look at methods, years and the rest.

    ||sarcasm|| I take your analysis as true and hereby declare that windows has been exploited lesser than linux, has less malware against and is inherently less prone to attack than linux or turning into a braindead spamzombie than linux. ||end sarcasm||

    Happy?

    --
    NO SIG
  42. Re:pwned by Dragonslicer · · Score: 4, Funny

    Windows Servers are far more inherently secure than Windows Desktops, simply by the way that they're operated.

    Wait, what?

  43. Re:pwned by magarity · · Score: 4, Insightful

    How much local privilege escalation vulnerabilities normal windows users worry about?
     
    They probably don't worry about it at all because the vast majority of Windows users log in and run with an administrative level account in the first place.

  44. Re:pwned by beav007 · · Score: 5, Funny

    Of course, as this only affects 2.4 and 2.6, users of Debian stable should have no reason to worry.

    See? All that testing is worth it after all!

  45. Re:Security through Obscurity? by Bent+Mind · · Score: 4, Interesting
    About a week ago, I updated to kernel 2.6.30. One of the options that showed up describes itself thus:

    CONFIG_DEFAULT_MMAP_MIN_ADDR: This is the portion of low virtual memory which should be protected from userspace allocation. Keeping a user from writing to low pages can help reduce the impact of kernel NULL pointer bugs.

    Unless I am misunderstanding, or the bug is in this code, the Linux kernel is already protected if properly configured. The kernel already prevents this attack.

    --
    Request a Linux Shockwave player here: http://www.macromedia.com/support/email/wishform/
  46. Your new math is very flawed. by WebCowboy · · Score: 4, Informative

    It's also worth noting that kernel 2.6 alone contains 186 advisories for 352 vulnerabilities with 6% unpatched. Windows Server 2008 contains 40 advisories for 82 vulnerabilities with 0% unpatched.

    Your comparison is very flawed and meaningless. Linux kernel 2.6.0test was released in 2003--IT HAS BEEN AROUND 5 YEARS LONGER THAN SERVER 2008! If you want your math to actually make a real point try integrating the vulnerability rate of each OS over the same time domain. Simply put, you have to look at the combined vulnerabilities reported by Windwos Server 2003 AND 2008 when comparing against Linux 2.6.x kernel based OSes.

    More proper numbers for Windows would be 242 advisories for 341 vulnerabilites. Slightly lower vulnerability count but quite a few more advisories. 6% of these vulnerabilities also remain unresolved. These numbers do not show Microsoft having any meaningful advantage in quality over the Linux kernel

    And, to be more fair still, you should compare OS to OS as you said, rather than OS to kernal. For RHEL5 OS the stats are 272 advisories for 828 vulnerabilities and zero unresolved (suggests that one advisory and pne patch probably solves many separately counted vulnerabilities--perhaps because Linux-based OSes leverage shared libraries far more than Windows?) Keep in mind, however, that Comparing SLES or RHEL strictly speaking wouldn't be a complete comparison either, because in Linux OS distributions many applications are included where the equivalent in Windows would be separate (possibly extra-cost) add-ons.

    Furthermore only counts are considered above, with no factor for intensity. Windows server 2008 has more than double the rate of "highly critical" vulnerabilities (35%) than does RHEL5 (16%) and it is well known that Linux exploits are far less likely to be directly remotely exploitable than is the case for Windows exploits.

    Yes, MSFT has made great strides in closing the quality and security gaps in ther server OSes (quality is still sorely lacking in their desktop offerings), but even if Windows was perfect I'd still prefer a Linux OS or OpenBSD:

    * can't afford Ballmer'$ ga$
    * Windows is closed--I don't trust what nobody but the vendoar/author can see. Secunia et al can only report what they can observe from behaviour. As in this reported Linux exploit, third-parties can perform extremely detailed analysis with source code at hand, often releasing the patch to plug the exploit right along with the exploit itself.
    * licensing and actrivation take a lot of time and resources that serve no practical purpose than to enforce an increasingly questionable business model--Activation is pure bulls**t. I've wasted FAR too much time on clients issues where the root cause of functional deficiencies was improperly activated/licensed closed software (be it Windows or others). I've HAD it with closed crippleware.
    * I like to tinker. I like to build. The playing field is for more flat in Free software land than in Windows land. I can reconfigure kernel modules, choose which web server, DNS server, email server I want to use and evaluate them truly on their merits. In Windows, if you think IIS or Exchange or MS DNS Stinks, you can try the alternatives but they always seem hobbled by comparison. MSFT never lets third parties play by the same rules, especially when server apps are considered "windows componenets" like with IIS and DNS. They get to leap MSFT's long-professed "chinese wall" to get total access to OS internals info others do not have. ANYONE who wants to write server apps on a Free platform has the same access to info.

  47. Re:pwned by maxwell+demon · · Score: 4, Funny

    But it wasn't a real "no true scotsman" fallacy. After all, it didn't involve a scotsman. :-)

    --
    The Tao of math: The numbers you can count are not the real numbers.