Login
Newsletter
Werbung

Do, 19. August 2010, 13:54

Software::Kernel

Alte Sicherheitslücke im Kernel geschlossen

Eine Sicherheitslücke, mit der ein lokaler Benutzer Root-Rechte erlangen konnte, wurde im Linux-Kernel geschlossen. Das Problem besteht möglicherweise in allen Linux-Versionen seit 2.6.

Linus Torvalds, Initiator des Linux-Kernels

Linux Foundation

Linus Torvalds, Initiator des Linux-Kernels

Auch Linux ist natürlich vor gelegentlichen Fehlern nicht gefeit. Wenn Sicherheitslücken bekannt werden, werden sie üblicherweise sehr schnell geschlossen. Eine kürzlich behobene Sicherheitslücke sorgte allerdings für Stirnrunzeln, weil es zwei Monate dauerte, das Problem zu beheben. Der Entdecker des Problems, Rafal Wojtczuk von Invisible Things Lab (ITL), hatte in vorbildlicher Weise erst das Sicherheits-Team von X.org benachrichtigt, wo er das Problem vermutete, und wartete volle zwei Monate, bis er am 17. August die Informationen publik machte. Die Details des Problems sind nun als PDF-Datei verfügbar.

Das X.org-Sicherheitsteam, das am 17. Juni benachrichtigt wurde, erkannte am 20. Juni, nachdem es verschiedene Lösungsmöglichkeiten probiert hatte, dass ein Problem im Kernel vorlag. Es dauerte bis zum 13. August, bis Linus Torvalds das Problem erledigte. Wie üblich enthält der Patch keinen Hinweis, dass es sich um ein Sicherheitsproblem handelt. Torvalds will es damit offenbar »Skript-Kiddies« nicht zu einfach machen, das Problem auszunutzen. Zudem sieht er nach eigenem Bekunden jeden Fehler als Fehler an, der korrigiert werden muss, gleichgültig, was dieser für Auswirkungen hat.

Das Problem besteht darin, dass Heap-Speicher von Programmen von unten nach oben, also zu höheren Adressen hin wächst, der Stack dagegen zu niedrigeren Adressen. Durch hinreichend viele Speicherallokationen und rekursive Funktionsaufrufe können sich die Bereiche überlappen, und man kann durch einen Zugriff auf den Heap-Speicher eine auf dem Stack liegende Rücksprung-Adresse so ändern, dass sie eigenen, zuvor eingebrachten Code ausführt. Zur Sicherheitslücke wird dies dann, wenn man einem als Root laufenden Prozess Daten in einem passenden Speicherbereich unterjubeln kann. Mit dem X-Server ist dies via Bitmaps in Shared Memory möglich. Ob auch andere Prozesse angreifbar sind, ist noch unklar.

Andrea Arcangeli und Nick Piggin arbeiteten seit dem 20. Juni daran, das Problem zu beheben. Ihr Patch wurde aber von Linus Torvalds wegen technischer Mängel abgelehnt. Dies erklärt, warum die Behebung länger dauerte. Torvalds implementierte letztlich selbst eine Korrektur, darauf bedacht, die Änderung minimal zu halten und andere Programme nicht zu beeinträchtigen.

Wie sich in der Publikation von Rafal Wojtczuk nachlesen lässt, wurde das Problem schon 2005 von Gaël Delalleau erkannt, erreichte aber nie die Kernel-Entwickler und geriet in Vergessenheit. Es ist sogar möglich, dass der Fehler bereits in der ersten Version von Linux 2.6 existierte. Es ist nichts davon bekannt, dass das Problem je von Angreifern ausgenutzt wurde. Dazu wäre es nötig, dass ein bösartiger Benutzer auf einem Rechner mit laufendem X11 ein Programm starten kann, sei es durch einen eigenen Zugang oder die tatkräftige Mithilfe eines Benutzers, der einen Trojaner ausführt. Das Zeitfenster für solch einen Angriff beginnt sich nun zu schließen.

Werbung
Pro-Linux
Pro-Linux @Facebook
Neue Nachrichten
Werbung