bk99.de entertain the web since 1997

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.

Originalartikel lesen →

Im Webarchiv suchen