Root-Exploit für FreeBSD

Ein Fehler im Run-Time Link-Editor lässt sich ausnutzen, um beliebige Programme mit Root-Rechten zu starten. Ein Patch steht zwar zur Verfügung, er ist jedoch nicht vollständig getestet.

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

Für FreeBSD ist ein Exploit erschienen, mit dem Anwender mit eingeschränkten Rechten an Root-Rechte gelangen können. Ursache des Problems ist ein Fehler im Run-Time Link-Editor (rtld), der sich unter bestimmten Umständen präparierte Umgebungsvariablen unterschieben lässt. Nach Angaben des Exploit-Entwicklers Kingcope ist der Fehler "unglaublich einfach" auszunutzen, indem man etwa die Umgebungsvariablen LD_PRELOAD mit einem Pfaden zu einer eigenen Bibliothek setzt und anschließend ein SUID-Programm wie Ping startet.

LD_PRELOAD veranlasst den Loader, beim Start eines Programmes zusätzliche Bibliotheken zu laden – egal was beim Kompilieren spezifiziert wurde. Die Bibliothek wird dann mit den gleichen Rechten ausgeführt wie das SUID-Programm. Aus Sicherheitsgründen ignorieren daher üblicherweise SUID-Programme vom Anwender definierbare Umgebungsvariablen wie LD_PRELOAD.

Ein Angreifer könnten die Lücke beispielsweise ausnutzen, um über Schwachstellen in Webanwendungen, die üblicherweise mit eingeschränkten Rechten laufen, den kompletten Server zu kompromittieren. Betroffen sind FreeBSD 8.0-RELEASE und FreeBSD 7.1-RELEASE. FreeBSD 6.3-RELEASE und FreeBSD 4.9-RELEASE sind jedoch nicht verwundbar.

Aufgrund der Dringlichkeit hat der Sicherheitsbeauftragte von FreeBSD Colin Percival einen Patch zur Verfügung gestellt, ohne den sonst obligatorischen Fehlerbericht zu veröffentlichten. Dieser soll erst am Mittwoch dieser Woche erscheinen. Percival weist aber darauf hin, dass der Patch noch nicht final ist und sich noch ändern kann. Zudem sei er nicht vollständig getestet, und man könne auch nicht garantieren, dass er die Schwachstelle vollständig schließe oder nicht noch weitere Lücken einführe.

Siehe dazu auch:

(dab)