Fehler im Linux-Kernel ermöglicht Root-Rechte
Ein Fehler in der Implementierung des "Reliable Datagram Sockets"-Protokolls im Linux-Kernel lässt sich ausnutzen, um an Root-Rechte zu gelangen. Der Fehler ist im Git-Repository der Entwickler bereits behoben.
- Daniel Bachfeld
Ein Fehler in der Implementierung des "Reliable Datagram Sockets"-Protokoll (RDS) im Linux-Kernel lässt sich ausnutzen, um an Root-Rechte zu gelangen. Angreifer können dies ausnutzen, um nach dem Einbruch in ein System über das Netzwerk die vollständige Kontrolle zu erlangen. Der Entdecker der Lücke Dan Rosenberg hat einen Exploit zu Demonstrationszwecken veröffentlicht; er öffnete im Test der heise-Security-Redaktion auf einem Ubuntu 10.04 (64 Bit) eine Root-Shell.
Betroffen sind die Kernel-Versionen 2.6.30 bis einschließlich 2.6.36-rc8. Die Linux-Entwickler haben im Git-Repository einen Patch eingepflegt, der das Problem behebt. Die Distributoren dürften in Kürze neue Kernel-Versionen veröffentlichen. Als Workaround empfiehlt Rosenberg, das Laden des Kernelmoduls zu verhindern: echo "alias net-pf-21 off" > /etc/modprobe.d/disable-rds (als Root). Die meisten Systeme sollten davon nicht beeinträchtigt werden, da sie das Protokoll ohnehin nie nutzen.
Kern des Problems im RDS-Protokoll ist laut Rosenberg, dass die dazugehörigen Kernelfunktionen beim Kopieren von Daten zwischen dem Kernelspeicher und dem Userspeicher angegebene Adressen nicht richtig prüfen. Auf diese Weise ist es für lokale Anwender möglich, für eine Socketsttruktur eine Basis-Adresse im Kernelbereich anzugeben. Mit bestimmten Socketaufrufen lässt sich dann Code in den Kernelspeicher schreiben und mit Kernel-Rechten starten.
Erst vor wenigen Tagen wurde eine Lücke im Loader der GNU-C-Bibliothek bekannt, mit der Angreifer ebenfalls ihre Rechte auf einem System ausweiten können. (dab)