Stack Clash: Aufgepumpter Stack kann Codeausführung verursachen
Sieben Exploits für Fehler im Stack-Management: Qualys hat eine Sicherheitslücke für Linux veröffentlicht, mit der lokale Angreifer erweiterte Rechte bekommen können. Die Stack-Guards-Funktion schützt nicht vor dem Angriff.

Die Sicherheitsfirma Qualys hat eine Sicherheitslücke mit dem Namen Stack Clash in Unix-Systemen veröffentlicht. Dabei kann ein großer Stack-Speicher eines Programms mit dem Heapspeicher kollidieren, Angreifer könnten damit Code ausführen und so ihre eigenen Rechte auf einem System erhöhen (privilege escalation). Der Angriff kann nicht aus der Ferne durchgeführt werden.
Qualys hat sieben verschieden Exploits entwickelt, um die Sicherheitslücken auszunutzen. Die Informationen wurden im Vorfeld mit den Herstellern großer betroffener Distributionen und Systeme geteilt, Patches werden in den Linux-Kernel eingepflegt und sollten demnächst ausgespielt werden. Die großen Distributionen haben bereits Security-Advisories veröffentlicht. Betroffen sind neben Linux-Systemen auch OpenBSD, NetBSD, FreeBSD und Solaris, sowohl auf i386 als auch auf AMD64-Systemen. Die Exploits will Qualys erst veröffentlichen, wenn Nutzer genügend Zeit hatten, um Updates zu installieren.
Stack Guard schützt nicht ausreichend
Probleme mit Stack Clashes sind nichts Neues. Bereits in den Jahren 2005 und 2010 wurden entsprechende Exploits bekannt. Nach dem vorerst letzten Vorfall wurde mit dem Stack Guard ein Schutzmechanismus eingeführt, der eine Verwechselung von Stack und Heapspeicher verhindern soll. Bei einem Angriff wird der Stack so lange künstlich vergrößert, bis er nah an den Heapspeicher heranragt.
Doch ein solcher Stack Guard mit einer Größe von wenigen Kilobyte ist nach Angabe von Qualys nicht ausreichend, um Angriffe abzuwehren. Wer noch keinen Patch einspielen kann, kann die Variablen für RLIMIT_STACK und RLIMIT_AS für Lokale Nutzer und Remoter-Dienste auf "vernünftig niedrige Werte" heruntersetzen, wie Qualys schreibt. Zu niedrige Werte können jedoch zum Absturz legitimer Programme führen, die Parameter sollten daher mit Bedacht gewählt werden.
Qualys beschreibt drei konkrete Angriffsszenarien: Beim Clashing wächst der Stack unkontrolliert in die angrenzende Speicherregion heran, beim Jumping wird der Pointer vom Stack-Speicher über den Guard hinweg in eine andere Speicherregion verschoben. Beim Smashing hingegen wird entweder der Stack oder der Heap mit der jeweils anderen Speicherregion überschrieben.
Oder nutzen Sie das Golem-pur-Angebot
und lesen Golem.de
- ohne Werbung
- mit ausgeschaltetem Javascript
- mit RSS-Volltext-Feed
(https://lists.freebsd.org/pipermail/freebsd-security/2017-June/009334.html) Bisher noch...
wer also ein "export RLIMIT_STACK =.." versucht wird damit nichts aendern. die stack size...