FreeBSD bug grants local root access
A security researcher has uncovered a security bug in the FreeBSD operating system that allows users with limited privileges to take full control of underlying systems.
The bug in FreeBSD's kqueue notification interface makes it trivial for those with local access to a vulnerable system to gain full root privileges, Przemyslaw Frasunek, an independent security consultant in Poland, told The Register. It affects versions 6.0 through 6.4 of the operating system, the last two versions of which enjoy wide use and continue to be supported by the FreeBSD Foundation.
Versions 7.1 and and beyond are not vulnerable.
Those exploiting the bug must first have local access to a vulnerable system, either as a legitimate user or by exploiting some other flaw (say, a vulnerable PHP script) that gives an attacker a toe-hold in to the targeted system. Frasunek said the vulnerability is trivial to exploit, as a video he posted here suggests.
The bug is the result of a race condition in the FreeBSD kqueue that leads to a NULL pointer dereference in kernel mode. Attackers can cause vulnerable systems to run malware by putting the code in a memory page mapped to address 0x0.
Frasunek said he notified FreeBSD officials on August 29 and has yet to get a response. Robert Watson, a FreeBSD Core Team member, told El Reg that it appeared the email had gotten "lost in the slew" and he expected an advisory to be issued soon. ®
Updated to clarify on versions 6.3 and 6.4 continue to be supported and to add comment from a FreeBSD official.
OS job to hand-hold
First of all I'm not dissing *BSD here (or any other OS for that matter).
However, that said I find it amazing that in a highly networked world the OS doesn't shield itself from poorly written binaries. With C++ being so prevalent you get pointer arithmetic being used left, right and centre. By combining ASLR with prevention of mmap'ing below the first MB or so an OS can make arbitrary code execution a statistical improbability.
Instead though we live in a world where an attacker has a decent idea of where their exploit code is going to end up and a relatively simple way of getting it executed.
I know that developers don't want to spend time fixing other peoples problems but kernel development is rather different to anything else - it's your job to hand-hold the processes running on it. If you don't then some 9-5 drone programmer working out of Bhopal is going to make your OS look crap when it gets pwned via an exploit in his code.
x86 architecture only ?
"The bug is the result of a race condition in the FreeBSD kqueue that leads to a NULL pointer dereference in kernel mode. Attackers can cause vulnerable systems to run malware by putting the code in a memory page mapped to address 0x0"
Do these NULL pointer exploits only run on the Intel x86 architecture and if so couldn't they make a Memory Management Unit immune to such exploits?
I was a little harsh to some of the Linux noobs the other day, but I do draw a distinction between noobs and loons.
I consider somebody a loon as you have done - somebody who thinks their OS defines them or how big their balls are. My comment today was mostly aimed at Yaro, somebody who couldn't even get the right OS with his "most secure operating system" spike. Not surprising with the 874,000+ Linux distros out there (alright, alright).
I'm glad that more people are using Linux (or *BSD or Solaris...), that is good. And I thoroughly endorse trying and learning.
FreeBSD, Solaris, and Linux loon.
Windows at home on the desktop, because it is the simplest for so many things.