Linux-Kernels der Serie 2.6 können durchknallen

EnterpriseSicherheit

Linux-Anwender aufgepasst: Die Branche warnt vor einem neuen Fehler, der sich bei genauerem Hinsehen als gefährlicher herausgestellt hat, als es der letzte Bug war.

Linux-Anwender aufgepasst: Die Branche warnt vor einem neuen Fehler, der sich bei genauerem Hinsehen als gefährlicher herausgestellt hat, als es der letzte Bug war. Der neue Bug verteilt sich durch das Senden bestimmter TCP-Pakete und bringt so auch den Kernel zum Absturz. Bei früheren Fehlern waren Angriffe nur sehr begrenzt möglich, dieser jedoch scheint es in sich zu haben.
Angreifer können bei dem neuen Leck viel Schaden anrichten, heißt es in einer User Group. Das Problem liege in einem Teil des Kernel-Codes, der die TCP-Optionen eines Pakets auswerte. Deshalb seien aber nur Systeme gefährdet, die mit ‘iptables’ Regeln festlegen, welche die Pakete auf ihre Optionen hin untersuchen.

Die Ursache des Problems scheint demnach bereits identifiziert. Eine Variable sei fälschlicherweise als ‘vorzeichenbehaftet’ deklariert. Dadurch nehme sie negative Werte an, wenn sie ihren positiven Wertebereich überschreite. Diese besagte Variable wird in der Schleife, die über die Optionen der TCP-Pakete iteriert, zur Erhöhung des Zählers verwendet, indem sie auf diesen addiert wird. Nimmt sie negative Werte an, zählt der Zähler der Schleife rückwärts (Subtraktion), wodurch diese zu keinem Abbruch kommt, da die hierzu notwendige Bedingung nicht erfüllt wird – was den Kernel in einer Endlosschleife verharren lässt. Im Unterschied zu einer Endlosschleife im Programm, welche vergleichsweise harmlos sei, verbrauche eine solche im Kernel selbst die gesamte Rechenleistung.

Ersten Tests zufolge betrifft der Fehler alle Kernels der Serie 2.6. Ein geeignetes Beispielpaket, welches erfolgreich zum Absturz führt, ist bekannt. Dieses ‘Packet of Death’ kann ein Angreifer von jedem beliebigen System aus an das Opfer senden. Das Problem lässt sich einfach beheben, indem man verhindert, dass die Differenz der Zähler zweier Iterationsdurchgänge einen negativen Wert annimmt, indem man die entsprechende Variable als vorzeichenlos deklariert. Wer diese Fehlerbehebung Marke Eigenbau nicht anwenden möchte, kann sich an Red Hat wenden. Der Linux-Vertrieb habe bereits in den neuesten Fedora-Kernel einen Patch für genau diesen Fehler eingebaut.