Root Exploit Vulnerability in Kernel 2.6.30

Jul 20, 2009

A recently discovered root exploit attacked the newest Linux versions and circumvented protection systems such as SELinux and AppArmor. A solution has been found.

An entry in the Internet Storm Center's Handler's Diary by Bojan Zdrnja entitled "A new fascinating Linux kernel vulnerability" describes the root exploit. The exploit code had been exposed by Brad Spengler, himself a developer for the grsecurity open source security application, in a "full-disclosure" on Grok.org. Zdrnja explains, "Why is it so fascinating? Because a source code audit of the vulnerable code would never find this vulnerability (well, actually, it is possible but I assure you that almost everyone would miss it). Spengler assures that only Kernel 2.6.30 and later are affected, with the exploit code running on 32-bit and 64-bit versions.

The security hole results from a vulnerability in the net/tun implementation. Even though the code correctly checks for a certain NULL variable, the compiler removes the if statement, thereby allowing access to otherwise inaccesible parts of memory. Zdrnja describes the "relatively easy" fix: "the check has to be done before assigning the value to the sk structure."

Thus the compiler introduces a vulnerability in the binary code that didn't exist in the source code, leading Zdrnja to the conclusion, "Fascinating research that again shows how security depends on every layer, and how even [a] very expensive source code audit can result in missed vulnerabilities."

ERRATA: Our original news indicated that Kernel 2.6.30 was previously released to customers primarily in a build for RHEL 5. We were wrong. The truth is that the exploit applies to Kernel 2.6.30 and later, as well as Kernel 2.6.18 in RHEL 5. The source code of the exploit, therefore, is compilable with different options. We apologize for our error.

Related content

  • Multitouch with Kernel 2.6.30

    Linux and multitouch input also work without X.org and with help from the new Kernel 2.6.30. Three French students show how it's done.

  • Windows Kernel: Unified Kernel Version 0.2.4.1

    The Unified Kernel, alias Longene, set itself the goal to natively support Windows programs. The newest version upgrades the Kernel version to 2.6.30.

  • Brad Spengler Exposes Exploit in Linux Kernel 2.6.31

    The developer behind the grsecurity.net security portal, Brad Spengler, has released videos on the Web that demonstrate a security hole in the current Linux kernel.

  • Local Root Exploit in Udev

    The udev subsystem allows the Linux kernel, together with a userland program, to manage device nodes dynamically, adding and removing them at will. It has now been revealed that the communication channel between the kernel and program fails to authenticate, so that users can assume root privileges.

  • SQL Queries Make Staroffice Vulnerable

    Security researchers Secunia have discovered a vulnerability in StarOffice that gives attackers the ability to execute arbitrary code. The developers of the free counterpart, OpenOffice, removed the problem last week.

Comments

  • Confusion

    Thanks for your alert, actually I got something mixed up. We've added a correction.
  • RHEL 5?

    Britta, I think you are getting your new stories confused. RHEL 5 is still running 2.6.18. 2.6.30 can be seen in recent releases of distros that use the newest versions, such as Ubuntu 9.04. There was an SSH vulnerability announced recently that possibly affects RHEL 5 because they are running older, more time-tested versions.
comments powered by Disqus
Subscribe to our Linux Newsletters
Find Linux and Open Source Jobs
Subscribe to our ADMIN Newsletters

Support Our Work

Linux Magazine content is made possible with support from readers like you. Please consider contributing when you’ve found an article to be beneficial.

Learn More

News