Sicherheitslücke im Linux-Kernel
Zusammenfassung
Paul Starzetz meldete im Januar 2004 eine kritische Lücke im Speichermanagement der Linux-Kernel 2.2, 2.4 und 2.6. Eine unzureichende Prüfung in do_mremap() erlaubte es, einen virtuellen Speicherbereich mit null Byte Länge anzulegen und so die Speicherverwaltung durcheinanderzubringen. Da mremap(2) keine besonderen Rechte erfordert, konnte jeder Prozess die Lücke nutzen; ein unveröffentlichter Exploit lieferte eine Root-Shell.
Ideen
- Ein Randfall wie null Byte Länge brachte die Speicherverwaltung aus dem Tritt.
- Jeder unprivilegierte Prozess konnte den Systemaufruf verwenden.
- Starzetz hielt den funktionierenden Exploit bewusst zurück.
Einsichten
- Grenzwerte wie null oder maximale Längen sind die häufigsten Ursachen für Kernel-Lücken.
- Verantwortungsvolle Offenlegung gibt Betreibern Zeit, ohne das Risiko zu verschweigen.
Fakten
- Betroffen waren die Kernel-Serien 2.2, 2.4 und 2.6.
- Der Fehler lag in der Funktion do_mremap().
Referenzen
Kritik
- Die Meldung nennt keine korrigierten Kernel-Versionen, an denen sich Administratoren orientieren könnten.
Empfehlungen
- Teste eigene Schnittstellen gezielt mit Grenzwerten wie null, negativ und maximal.
- Spiele Kernel-Updates auf Systemen mit lokalen Benutzern mit hoher Priorität ein.
Links zur Originalquelle und zum Webarchiv öffnen einen neuen Tab.