OOPS - Root-Rechte auf Linux
Eine geschickte Kombination von SicherheitslĂĽcken beschert Root-Rechte auf Linux-Systemen. Unter anderem ein Treiber fĂĽr das exotische Econet-Protokoll spielt dabei eine Rolle.
Auf der Sicherheits-Malingliste Full Disclosure präsentiert Dan Rosenberg ein kleines Demo-Programm, das mehrere Sicherheitslücken so geschickt kombiniert, dass es damit auf Linux-Systemen Root-Rechte erlangen kann.
Eigentlicher Auslöser ist ein von Nelson Elhage entdecktes Problem im Zusammenhang mit Thread-Verwaltung und Fehlerbehandlungs-Routinen des Kernels (CVE-2010-4258). So kann ein OOPS dazu führen, dass ein Anwender ein Null-Byte in den Speicherbereich des Kernels schreibt. Das kombiniert Rosenberg mit einer Reihe von Schwachstellen in der Implementierung des Econet Protokolls, die ebenfalls Nelson Elhage kürzlich gefunden hat.
Zwei davon (CVE-2010-3848, CVE-2010-3849) lassen sich nur ausnutzen, wenn bereits ein Administrator im System Econet-Interfaces konfiguriert hat. CVE-2010-3850 allerdings erlaubt es einem lokalen Anwender, genau das ohne Root-Rechte zu tun. Das erstaunliche daran: Obwohl Econet ein steinaltes Protokoll ist, das Acorn-Computer über spezielle Netzwerkkarten zur Kommunikation mit Datei- und Print-Servern nutzte, unterstützen auch viele aktuelle Kernel dessen Emulation per Default und ohne weiteres Zutun des Anwenders. So lud im Test von heise Security etwa ein Ubuntu 10.04 LTS "Lucid Lynx" ohne Murren den Econet-Treiber und präsentierte beim Ausführen des Demo-Exploits eine Root-Shell:
$ ./full-nelson
[*] Resolving kernel addresses...
[+] Resolved econet_ioctl to 0xffffffffa0b76510
[+] Resolved econet_ops to 0xffffffffa0b76600
[+] Resolved commit_creds to 0xffffffff8108aee0
[+] Resolved prepare_kernel_cred to 0xffffffff8108b2c0
[*] Calculating target...
[*] Triggering payload...
[*] Got root!
# id
uid=0(root) gid=0(root)
Rosenberg weist in seinen Kommentaren darauf hin, dass er den Exploit absichtlich so gestaltet hat, dass die meisten Standard-Systeme nicht gefährdet sind. So unterstützt Redhat per Default kein Econet und Ubuntu und Debian haben die ausgenutzten Econet-Lücken bereits gepatcht. Allerdings ließe sich deren Aufgabe einen Kernel-OOPS zu erzeugen, recht leicht durch andere Schwachstellen ersetzen, sodass eigentlich jeder Linux-Anwender betroffen sei. Redhat erklärt jedoch bereits, dass Red Hat Enterprise Linux 4, 5, 6, und Red Hat Enterprise MRG für CVE-2010-4258 nicht anfällig seien. (ju)