Root-Rechte durch Linux-Kernel-Bug [Update]
Zusammenfassung
Rafal Wojtczuk beschrieb 2010 ein Problem in der Linux-Speicherverwaltung, bei dem Stack und Shared-Memory-Segmente ineinanderwachsen konnten. Am Beispiel des X-Servers zeigte er, wie ein Angreifer durch Schreiben in den gemeinsamen Speicher Rücksprungadressen auf dem Stack überschreibt und Root-Rechte erlangt. Die Korrektur mit einer Schutzseite zwischen Stack und anderen Bereichen kam in 2.6.32.19, 2.6.34.4 und 2.6.35.2, obwohl SUSE einen Fix schon 2004 angeboten hatte.
Ideen
- Ein wachsender Stack kann in einen anderen Speicherbereich hineinlaufen.
- Eine Guard Page als Mindestabstand verhindert das Überlappen.
- Der Angriff braucht lokale Codeausführung, etwa über eine zweite Lücke.
- Prozesse, deren Stack an andere Bereiche stößt, werden nun per SIGBUS beendet.
Einsichten
- Konzeptfehler in der Speicherverwaltung überdauern oft viele Jahre.
- Ein verfügbarer, aber nicht übernommener Patch schützt niemanden.
Fakten
- Andrea Arcangeli bot bereits im September 2004 einen Fix an, der nicht in den offiziellen Kernel gelangte.
- SUSE hatte den Fix in SLE 9 und 11 sowie openSUSE 11.1 bis 11.3 eingepflegt.
Referenzen
Kritik
- Die Meldung vermischt zunächst zwei Schwachstellen und musste per Update klarstellen, dass Spenglers Exploit eine andere Lücke betraf.
Bemerkungen
- 2017 zeigte Qualys mit „Stack Clash“, dass eine einzelne Guard Page nicht reicht; der Abstand wurde daraufhin deutlich vergrößert.
Empfehlungen
- Halte Kernel aktuell, auch wenn eine Lücke nur lokal ausnutzbar scheint.
- Führe grafische Oberflächen und X-Server nicht auf Servern ohne Bedarf aus.
Links zur Originalquelle und zum Webarchiv öffnen einen neuen Tab.