Eight Years of Linux Kernel Vulnerable

It’s the end of the world. Again. According to some Linux developers and security researchers, a bug in the Linux kernel has just been uncovered that makes just about every distribution utilizing kernel 2.4 and 2.6 on just about all architectures since May of 2001 vulnerable to a certain kind of attack.I’m not any sort of developer, so basically all of this makes no sense to me except that
whatevercomprises the aforementioned bug allows an attacker to escalate local
privileges and completely compromise the entire system. Julien Tinnes, a security
researcher who does know his way around kernel code, wrote the following details about the bug.

At first sight, the code in af_ipx.c looks correct and seems to initialize .sendpage properly. However, due to a bug in the SOCKOPS_WRAP macro, sock_sendpage will not be initialized. This code is very fragile and there are many other protocols where proto_ops are not correctly initialized at all (vulnerable even without the bug in SOCKOPS_WRAP)…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.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.

Rodney Taylor, from security research at Secorix, said that the bug “passes my it’s-not-crying-wolf test so far,” and that he’d definitely check his enterprise Linux systems (providing he had any), see if it was related, and see if he needed to get a patch.

Lucky for us, there already is a patch, and it should be implemented into all future kernels from here on out.

Makes me happy to be alive.

58 Comments

  1. 2009-08-14 4:00 am
  2. 2009-08-14 4:12 am
    • 2009-08-14 11:23 am
      • 2009-08-14 2:11 pm
        • 2009-08-14 4:49 pm
  3. 2009-08-14 4:55 am
    • 2009-08-14 5:48 am
      • 2009-08-14 12:19 pm
        • 2009-08-14 9:50 pm
  4. 2009-08-14 5:02 am
    • 2009-08-14 5:15 am
      • 2009-08-14 5:35 am
      • 2009-08-14 6:18 am
        • 2009-08-14 8:05 am
          • 2009-08-14 1:45 pm
          • 2009-08-15 10:45 pm
          • 2009-08-16 4:25 pm
          • 2009-08-16 10:22 pm
      • 2009-08-16 10:15 pm
    • 2009-08-14 5:32 am
    • 2009-08-14 6:58 am
      • 2009-08-14 8:15 am
      • 2009-08-14 9:43 am
        • 2009-08-15 10:47 pm
    • 2009-08-14 9:08 am
      • 2009-08-14 3:23 pm
        • 2009-08-15 1:33 pm
          • 2009-08-15 1:55 pm
          • 2009-08-15 3:19 pm
    • 2009-08-14 11:37 am
    • 2009-08-14 12:43 pm
    • 2009-08-14 3:28 pm
  5. 2009-08-14 5:09 am
    • 2009-08-14 10:39 am
      • 2009-08-15 10:49 pm
  6. 2009-08-14 6:07 am
    • 2009-08-14 10:44 am
      • 2009-08-14 10:50 am
  7. 2009-08-14 6:38 am
    • 2009-08-14 6:58 am
      • 2009-08-14 12:09 pm
        • 2009-08-14 3:17 pm
          • 2009-08-17 10:13 am
    • 2009-08-14 8:10 am
      • 2009-08-15 12:31 am
  8. 2009-08-14 7:57 am
    • 2009-08-14 6:40 pm
  9. 2009-08-14 8:13 am
  10. 2009-08-14 10:48 am
  11. 2009-08-14 3:43 pm
    • 2009-08-14 8:12 pm
    • 2009-08-15 1:29 pm
    • 2009-08-15 3:03 pm
      • 2009-08-15 3:14 pm
        • 2009-08-16 11:32 pm
  12. 2009-08-17 9:53 am
  13. 2009-08-17 4:19 pm
  14. 2009-08-19 8:39 pm