Root-Rechte durch Schwachstelle im GNU-C-Loader [Update]

Eine fehlende Prüfung beim Expandieren von Pfaden zum Nachladen von Bibliotheken lässt sich ausnutzen, um an Root-Rechte zu gelangen. Angreifer könnten dies nach Einbrüchen in Servern zum Ausweiten der Rechte missbrauchen.

In Pocket speichern vorlesen Druckansicht 175 Kommentare lesen
Lesezeit: 2 Min.
Von
  • Daniel Bachfeld

Eine Schwachstelle in dem zur GNU-C-Bibliothek gehörenden Loader zum Nachladen von Bibliotheken lässt sich ausnutzen, um auf Linux und anderen Systemen an Root-Rechte zu gelangen. Angreifer könnten die Lücke nutzen, um etwa nach einem Einbruch in einen Webserver mit beschränkten Zugriffsrechten ihre Rechte auszuweiten und so das System vollständig unter ihrer Kontrolle zu bekommen. Einige Distributoren arbeiten bereits an Updates.

Das Laden von dynamisch gelinkten Bibliotheken beim Start von Anwendungen mit SUID-Rechten kann seit jeher zum Sicherheitsproblem werden, wenn es sich um eine untergeschobene Bibliothek eines Angreifers handelt – etwa wenn Pfade zu Bibliotheken verbogen sind. Dann kann der Code in der Bibliothek mit Root-Rechten laufen. Aus diesen Gründen gibt es diverse Sicherheitsmaßnahmen und Beschränkungen, um zu verhindern, dass Anwendungen etwa durch Angaben zusätzlicher Pfade weitere, beliebige Bibliotheken laden dürfen.

Kern des neuen Problems ist die Art, wie der Loader die von der Anwendung übergebene Variable $ORIGINS expandiert. $ORIGIN macht es möglich, Pfade zu Bibliotheken relativ zum Installationsort einer Anwendung anzugeben. Damit muss etwa eine selten benutzte Bibliothek nicht im Standardpfad für Bibliotheken, sondern kann im Unterverzeichnis der Anwendung liegen. Nach Angaben des Entdeckers der Lücke Tavis Ormandy lautet zwar die Empfehlung der ELF-Spezifikation, dass der Loader die Variable $ORIGIN bei SUID- oder SGID-Binaries ignorieren soll, jedoch haben die glibc-Entwickler dies offenbar nicht beherzigt.

Ormandy ist es durch diverse Tricks mit Hardlinks, Umleitungen von Dateideskriptoren und dem Setzen von Umgebungsvariablen gelungen, diesen Schwachpunkt auszunutzen und eine Shell mit Root-Rechten zu öffnen. Seinen Tests zufolge sind mindestens die glibc-Versionen 2.12.1 unter Fedora 13 und 2.5 unter Red Hat Enterprise Linux 5 anfällig. In Tests der heise-Security-Redaktion zeigte sich ein Ubuntu 10.04 (64 Bit) von dem Angriff dagegen unbeeindruckt. Ormandy schreibt in seinem Bericht über das Problem jedoch, dass die Wege zum Ausnutzen der Lücke variieren können. (dab)