The Linux kernel has finally been purged of a privilege-escalation vulnerability that for at least half a decade allowed untrusted local users to gain unfettered rights to the operating system's most secure locations.
Maintainers of the central Linux component issued a patch last week that killed the bug, which allowed unprivileged users to gain root access. While Linux overlords stopped short of declaring it a security vulnerability, they stressed that the patch should be installed as soon as possible.
“I'm tired of people trying to parse my words like I'm the Federal Reserve Chairman, just go update already,” developer Greg Kroah-Hartman said here.
The vulnerability was described as long ago as 2005 by researcher Gael Delalleu, but it remained largely overlooked until Rafal Wojtczuk, a researcher at Invisible Things Lab, started investigating related issues. In a PDF paper published Tuesday, he outlined a method that exploits the underlying bug using the Xorg server, which is instrumental in providing graphical user interface functions in Linux and is also referred to as the X server.
“One important aspect the attack demonstrates, is how difficult it is to bring security to a desktop platform, where one of the biggest challenges is to let applications talk to the GUI layer (e.g., X server in case of Linux), which usually involves a very fat GUI protocol (think X protocol, or Win32 GUI API) and a very complex GUI server, but at the same time keep things secure,” Joanna Rutkowska, a fellow security researcher at Invisible Things Lab blogged.
The memory-corruption bug stems from two memory regions of the X server that grow in the opposite directions in the address space, an attribute inherited from the x86 architecture designed by Intel. Attackers can force the two regions to collide, causing critical control data to be replaced with values that allow the X server to be hijacked.
The bulletin accompanying the kernel fix described the implementation of “a guard page below a grow-down stack segment.”
It's a fairly exotic exploit, and can only be used locally, unless combined with an unrelated vulnerability. Still, its ability to remain unrepaired in the kernel for more than five years challenges the contention among many Linux boosters that the open-source platform is more secure because anyone can examine its source code. The lesson here is that the ability to do so doesn't guarantee that anyone will, even when they have the kind of generous guidance provided by Delalleu.
To be fair, some Linux distributions appear to have issued updates that closed the hole. SUSE Enterprise 9, 10, and 11 and some versions of openSUSE aren't vulnerable, according to H-Security, which said the SUSE security team issued a fix for the issue in 2004.
But that only begs the question why such a fix was never incorporated in the kernel. ®