zurück zum Artikel

Sicherheitslücke im Linux-Kernel

Daniel Bachfeld

Ein manipulierter SMB-Server kann ein Linux-Anwender-System zum Absturz bringen oder kompromittieren. Der Fehler sollte zwar im Kernel 2.6.29.1 behoben sein, ganz sicher scheinen sich die Entwickler aber nicht zu sein.

Durch eine Schwachstelle im Linux-Kernelcode [1] für den CIFS-Client soll es möglich sein, dass ein manipulierter SMB-Server ein Anwender-System abstürzen lassen oder kompromittieren kann. Ursache ist ein zu kleiner Puffer in der Funktion CIFSTCon in fs/cifs/connect.c bei der Verarbeitung der Serverantwort auf den Verbindungswunsch auf eine Ressource, ein so genannter Tree Connect. Damit ließe sich Code einschleusen und ausführen. Der Fehler tritt in der Regel nur beim Mounten auf.

Die Linux-Entwickler haben bereits mit der Kernel-Version 2.6.29.1 versucht [2], den Fehler zu beheben, indem sie die Pufferlänge einfach verdoppelten. Allerdings wiesen sie nicht explizit darauf hin, dass es sich um ein potenzielles, über das Netzwerk ausnutzbares Problem handelte. Der Sicherheitsspezialist Felix von Leitner vermutete [3] in seinem Blog aber bereits Anfang dieser Woche, dass es sich um eine Sicherheitslücke in CIFS handelt, die aus der Ferne ausnutzbar sei. Gegenüber heise Security gab er an, dass der Fix im Kernel 2.6.29.1 das Problem zwar löse, der gesamte Code aber fragwürdig sei. Beispielsweise seien die Prüfungen der Länge von Zeichenketten wackelig.

Ganz sicher sind sich die CIFS-Entwickler mit ihrem Patch [4] in der aktuellen Kernelversion wohl nicht, denn auf der linux-cifs-client-Mailingliste diskutieren sie weiter über die sinnvolle Länge des Puffers. Suresh Jayaraman von Suse vermutete [5], dass statt einer Verdoppelung eher eine Vervierfachung der Länge nötig sei. Im Laufe der Diskussion kamen die Entwickler zu dem Schluss, dass es notwendig sei, die Funktionen zur Längenprüfung zu übergebender Zeichenketten vollständig zu überarbeiten.

Siehe dazu auch

(dab [7])


URL dieses Artikels:
https://www.heise.de/-212229

Links in diesem Artikel:
[1] http://www.kernel.org/
[2] http://www.kernel.org/pub/linux/kernel/v2.6/ChangeLog-2.6.29.1
[3] http://blog.fefe.de/?mon=200904
[4] http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=b363b3304bcf68c4541683b2eff70b29f0446a5b
[5] http://lists.samba.org/archive/linux-cifs-client/2009-April/004322.html
[6] https://www.heise.de/news/Linux-Kernel-2-6-29-freigegeben-207989.html
[7] mailto:dab@ct.de