Weiterer Fehler im Linux-Kernel

Paul Starzetz hat eine weitere, neue Lücke in der do_mremap()-Funktion in den Linux-Kernel 2.2, 2.4 und 2.6 ausgemacht, durch die lokale Angreifer Root-Rechte erlangen können.

In Pocket speichern vorlesen Druckansicht 748 Kommentare lesen
Lesezeit: 2 Min.
Von
  • Patrick Brauch

Paul Starzetz hat eine weitere Lücke in der do_mremap()-Funktion in den Linux-Kernel 2.2, 2.4 und 2.6 ausgemacht. Der Fehler stehe aber in keinerlei Zusammenhang mit dem Anfang Januar gefundenen Sicherheitsloch in der gleichen Funktion.

Das neue Problem besteht in der Unterfunktion do_munmap(), die potenziell belegte Speicherbereiche wieder freigibt. Der Rückgabewert der do_munmap()-Funktion wird nicht überprüft: Überschreitet die Anzahl der möglichen Virtual Memory Area Descriptors (VMAs) das standardmäßige Limit von 65.535, schlägt der Funktionsaufruf fehl, was zu einer Rechteausweitung genutzt werden kann. Da keine speziellen Privilegien benötigt werden, um die mremap-Funktion einzusetzen, kann jeder Prozess damit das Kernel-Memorysubsystem angreifen. Lokale Benutzer können so Root-Rechte erlangen oder das System lahm legen (Denial of Service). Starzetz hat einen Proof-of-Concept-Exploit entwickelt, den er nächste Woche veröffentlichen will -- Christophe Devine ist ihm allerdings zuvorgekommen und hat bereits einen eigenen Proof of Concept auf der Sicherheits-Mailingliste Full Disclosure veröffentlicht, mit dem Anwender überprüfen können, ob ihr System anfällig ist.

Starzetz hat noch zwei weitere ungeprüfte do_munmap()-Funktionsaufrufe gefunden, die möglicherweise ebenfalls ausnutzbar sind. Betroffen sind laut Starzetz die Kernel-Versionen 2.2.25 und älter, 2.4.24 und älter sowie 2.6.2 und älter. Da es bislang keine Patches für den Fehler gibt, sollten betroffene Anwender auf neuere Kernel ausweichen. Die Linux-Distributoren reagieren bereits, sowohl Red Hat, SuSE als auch Debian empfehlen in Advisories das Update auf die aktuellen Kernel 2.4.25 beziehungsweise den just veröffentlichten Kernel 2.6.3.

Siehe dazu auch: (pab)