|
Kleiner Bug, große Probleme Veröffentlicht am: 15.06.2004 10:57:36 Wie bringt man mit einem kleinen C-Programm einen ganzen Linux-Rechner zum Absturz? Ganz einfach, man verwendet Gleitkommabefehle. Mit einem kleinen C-Programm, das einige FPU-Befehle der CPU ausnutzt, kann man Rechner, die einen aktuelleren Kernel (2.4, 2.6) einsetzten, komplett zum Absturz bringen - und das ohne Root-Rechte. Es reicht, das Programm auf dem Rechner als normaler Benutzer auszuführen. Sogar als CGI-Script kann es den Rechner deaktivieren. Daher sind nicht nur Systeme betroffen, die ihren Benutzern einen Shell-Account geben, sondern auch alle Web-Hoster, die CGI-Programme erlauben. Betroffen sind fast alle Kernels der Serien 2.4 und 2.6, damit auch alle gängigen Linux-Distributionen wie Debian GNU/Linux, SuSE oder Fedora Core 2. Als "immun" erwiesen sich bisher nur einige Gentoo-Kernel (2.4.26-Prereleases und 2.4.25). Warum diese nicht betroffen sind, ist noch nicht klar. Auf diesen sicheren Kernelversionen resultiert die Ausführung des Programms nur in einer Floating point exception. Bisher existieren provisorische Patches für den Kernel 2.4.26 und den Kernel 2.6.7-rc3, man kann aber davon ausgehen, dass es für alle gängigen Distributionen und Kernels binnen kurzer Zeit ein passendes Update geben wird. Der Patch von Alexander Nyberg , Sergey Vlasov und Andi Kleen wurde bereits von Linus Torvalds abgesegnet. Der "böse" Code: 1 #include Der GCC Bug-Report, der das Problem bekannt machte. Der Patch für den Kernel 2.4 Der Patch für den Kernel 2.6 Martin Leyrer |