Stack Clash: Schwachstelle führt zu Rechteausweitung auf Linux- und BSD-Systemen

Die Stack Guard Page sollte eigentlich Stack-Overflow-Angriffe verhindern. Nun haben Sicherheitsforscher herausgefunden, wie man diesen Schutz von Unix-Systemen umgehen, oder besser: überspringen, kann.

In Pocket speichern vorlesen Druckansicht 137 Kommentare lesen
Stack Clash: Schwachstelle führt zu Rechteausweitung auf Linux- und BSD-Systemen

Stack Overflow Calling

(Bild: Helge Øverås / heise online, CC BY 2.5)

Lesezeit: 2 Min.
Von
  • Fabian A. Scherschel

Mehrere Linux-Distributionen und die Entwickler anderer Unix-artiger Betriebssysteme arbeiten daran, eine Sicherheitslücke zu stopfen, die lokale Rechteausweitung zur Folge haben kann. Forscher der Sicherheitsfirma Qualys hatten entdeckt, dass sich eine Sicherheitsvorkehrung der Speicherverwaltung des Linux-Kernels dazu missbrauchen lässt, Speicherinhalte zu überschreiben. Angreifer können diese als "Stack Clash" bezeichnete Lücke missbrauchen, um sich höhere Rechte zu erschleichen und damit Schadcode auszuführen. Betroffen sind der Linux-Kernel, FreeBSD, OpenBSD, Solaris und andere Unix-ähnliche Betriebssysteme.

Die sogenannte Stack Guard Page wurde im Linux-Kernel eigentlich deswegen eingeführt, um Rechteausweitungen durch Speichermanipulationen zu verhindern. Sie ist eine Antwort auf Bugs, die 2010 im Modul mm/memory.c im Versionszweig 2.6 des Kernels gefunden wurden (CVE-2010-2240). Die Stack Guard Page sollte verhindern, dass ähnliche Bugs in Zukunft ausgenutzt werden. Sie trennt verschiedene Regionen des Speichers, die zu Prozessen im User Space gehören und soll Stack-Overflow-Angriffe abfangen und kaltstellen.

Die von Qualys entdeckte Lücken im Linux-Kernel (CVE-2017-1000364) und in der C-Bibliothek glibc (CVE-2017-1000366) ermöglichen es, diese Implementation zu umgehen und sozusagen über die Barriere im Speicher zu springen. Ein User-Space-Prozess kann somit Speicher hinter einer Stack Guard Page manipulieren und sich so im zweifel höhere Rechte verschaffen.

Ein Patch, der das Problem behebt, wurde in den Entwicklungszweig des Linux-Kernels eingepflegt. Die Sicherheitsteams der großen Linux-Distributionen arbeiten bereits daran, die Änderungen in ihre Kernel einzupflegen, beziehungsweise spielen im Moment entsprechende Updates aus. Der Patch scheint aber unter gewissen Umständen noch Probleme zu bereiten, es ist also denkbar, dass weitere Updates nachkommen. (fab)