Slashdot Mirror


Hole In Linux Kernel Provides Root Rights

oztiks writes with this excerpt from The H: "A vulnerability in the 32-bit compatibility mode of the current Linux kernel (and previous versions) for 64-bit systems can be exploited to escalate privileges. For instance, attackers can break into a system and exploit a hole in the web server to get complete root (also known as superuser) rights or permissions for a victim's system. According to a report, the problem occurs because the 32-bit call emulation layer does not check whether the call is truly in the Syscall table. Ben Hawkes, who discovered the problem, says the vulnerability can be exploited to execute arbitrary code with kernel rights. ... Hawkes says the vulnerability was discovered and remedied back in 2007, but at some point in 2008 kernel developers apparently removed the patch, reintroducing the vulnerability. The older exploit apparently only needed slight modifications to work with the new hole."

4 of 274 comments (clear)

  1. Re:Perhap the kernel's size is becoming too unweil by siride · · Score: 4, Informative

    You're talking about git submodules and I'm gonna go ahead and guess that the answer you'll receive from the kernel folks about that is a big fat "no". Maybe if Git had usable project hierarchies, things might be different.

    Also to note: even Git can't fix stupid policy or stupid programming decisions.

  2. Bit late to be news by 0123456 · · Score: 4, Informative

    Ubuntu, at least, has already released the patch as a kernel upgrade; it was fixed early in the week so I presume most other distros have too.

  3. Re:Serve them right by jc42 · · Score: 4, Informative

    And that's why I use OpenBSD :)

    I thought that was because you were a pretentious wanker?

    It's quite possible to have two independent reasons for doing something.

    --
    Those who do study history are doomed to stand helplessly by while everyone else repeats it.
  4. Re:Doesn't work by x2A · · Score: 4, Informative

    cd /usr/src/linux &&
    grep -ilE 'super.?user' `find . -iname *.[ch]`

    arch/avr32/mm/cache.c
    arch/h8300/include/asm/cachectl.h
    arch/ia64/kernel/unaligned.c
    arch/m68k/include/asm/cachectl.h
    arch/m68k/kernel/sys_m68k.c
    arch/parisc/hpux/sys_hpux.c
    arch/x86/kernel/apm_32.c
    arch/x86/kernel/ioport.c
    drivers/char/apm-emulation.c
    drivers/char/rio/errors.h
    drivers/char/rio/rioctrl.c
    drivers/net/wireless/airo.c
    drivers/scsi/megaraid.c
    drivers/scsi/megaraid/megaraid_mm.c
    drivers/staging/vt6655/iwctl.c
    drivers/staging/vt6656/iwctl.c
    fs/cachefiles/daemon.c
    fs/ext4/mballoc.c
    fs/fcntl.c
    fs/namei.c
    fs/ntfs/super.c
    fs/smbfs/file.c
    fs/ubifs/budget.c
    fs/ufs/ufs_fs.h
    fs/unionfs/sioq.c
    fs/utimes.c
    fs/xfs/quota/xfs_qm.c
    fs/xfs/quota/xfs_qm_syscalls.c
    fs/xfs/xfs_quota.h
    include/linux/acct.h
    include/linux/dqblk_xfs.h
    include/linux/fd.h
    include/linux/keyboard.h
    include/linux/random.h
    include/linux/sched.h
    include/linux/shm.h
    include/net/sock.h
    kernel/kexec.c
    kernel/sys.c
    kernel/sysctl.c
    kernel/time/ntp.c
    mm/mempolicy.c
    mm/migrate.c
    mm/oom_kill.c
    net/core/dev.c
    net/core/sock.c
    net/netlink/af_netlink.c
    net/netrom/af_netrom.c

    (full disclosure: I also piped it thru |sed -e 's/^\.\///g' for formatting purposes (slashdot puts it all one one line if they begin with ./ for some reason) and |sort because I'm just like that)

    --
    The revolution will not be televised... but it will have a page on Wikipedia