Tipps zur Erkennung und Behebung der Local-Privilege-Escalation-Schwachstelle CVE-2023-4911

Vor kurzem entdeckte und meldete Qualys eine kritische Sicherheitslücke, die das beliebte GLIBC-Ökosystem betrifft, das standardmäßig auf den meisten Linux-basierten Betriebssystemen installiert ist. In dem Code wurde ein Pufferüberlauf gefunden, der für die Handhabung spezieller Umgebungsvariablen während des Starts eines Prozesses verantwortlich ist. Sysdig, der führende Anbieter von Cloud-Sicherheit auf der Basis von Runtime-Insights, nimmt die Schwachstelle, die als „Looney-Tunables“ bezeichnet wird, genauer unter die Lupe, um herauszufinden, warum sie aufgetreten ist und wie man das Risiko erkennen und mindern kann. Falco, ein Cloud-natives Sicherheitstool, das auf Systemaufrufen basiert, kann verwendet werden, um die Ausnutzung der Looney-Tunables-Schwachstelle in der Laufzeit zu erkennen.

Die Schwachstelle mit der Bezeichnung CVE-2023-4911 und einer Bewertung von 7.8 wird als besonders schwerwiegend eingestuft. Wenn sie ausgenutzt wird, kann der Angreifer Root-Rechte auf einer Linux-Installation mit GLIBC Version 2.34 erlangen (siehe Linux-Distribution für genaue Informationen zum Status). Zum Zeitpunkt der Erstellung dieser Meldung wurden bereits mehrere Proof-of-Concept-Versionen des Exploits veröffentlicht. Das Ausnutzen der Schwachstelle selbst ist einfach. Selbst mit dem Brute-Force-Verfahren für Speicheradressen kann ein erfolgreiches Ausnutzen in weniger als 5 Minuten erfolgen.

Ein Angreifer beginnt damit, den LD_LIBRARY_PATH für eine bestimmte Suid-Binärdatei zu ändern oder eine Kopie zu erstellen, so dass Prozesse nicht vertrauenswürdige freigegebene Objekte aus einem vom Angreifer kontrollierten Verzeichnis laden können. Das Ergebnis ist die Ausführung von bösartigem Code mit Root-Rechten.

Behebungen für diese Sicherheitslücke werden derzeit von den verschiedenen Linux-Distributionen veröffentlicht. Sysdig empfiehlt, sich auf den jeweiligen Websites nach Behebungen umzusehen, da diese Sicherheitslücke viele verschiedene Versionen betrifft.

 

CVE-2023-4991 – Einzelheiten der Schwachstelle

Der Fehler wurde mit Commit 2ed18c („Fix SXID_ERASE behavior in setuid programs (BZ #27471)“) innerhalb der Funktion __tunables_init eingeführt. Diese Funktion durchsucht Umgebungsvariablen nach GLIBC_TUNABLES. Sobald sie gefunden wird, erstellt sie eine Kopie mit tunables_strdup. Da GLIBC noch nicht initialisiert ist, verwendet sie strdup unter __minimal_malloc, wodurch der Speicher aus dem virtuellen Speicher statt dem Heap zugewiesen wird.

Der Pufferüberlauf tritt aufgrund der Art und Weise auf, wie Argumente geparst werden. Ein Fuzzing-Test mit AFL++ oder Libfuzzer kann diesen Fehler in Sekunden reproduzieren. Die von Qualys erläuterte Ausnutzungstechnik ist einfach und besteht darin, die Umgebung mit NULL-Bytes zu füllen, bis ein Überlauf in das l_info-Mitglied der link_map-Struktur erfolgt. Die Ausnutzungstechnik beinhaltet das Füllen der Umgebung mit NULL-Bytes, bis ein Überlauf in das l_info-Mitglied der link_map-Struktur erfolgt. Dies kann dazu führen, dass die Binärdatei gemeinsam genutzte Objekte aus nicht vertrauenswürdigen Verzeichnissen lädt.

Die aktuellen Ausnutzungstechniken umgehen nicht ASLR und basieren auf Brute-Force-Raten. Mit dem richtigen Setup kann der Zeiger nach 2.730 Versuchen gültig sein, was in nur wenigen Minuten erreicht werden kann.

 

Fazit

Die Looney Tunables-Schwachstelle ist sehr ernst, da viele Linux-Distributionen betroffen sind und es relativ einfach ist, sie auszunutzen. Wenn sich ein Angreifer unberechtigten Zugriff auf ein System verschafft, entweder durch Anmeldung als normaler Benutzer oder durch einen anderen Remote-Exploit, kann er diese Sicherheitslücke ausnutzen, um Root-Rechte zu erlangen. Die meisten Linux-Distributionen enthalten irgendeine Form von GLIBC, daher ist es wichtig, zu prüfen, ob Sie anfällig sind. Die Erkennung kann mit dem Cloud-nativen Laufzeit-Tool Falco erfolgen, das ähnliche Regeln wie die oben genannten verwendet. Da es derzeit nicht viele Möglichkeiten zur Schadensbegrenzung gibt, ist die beste Möglichkeit, diese Sicherheitslücke zu beheben, die Installation von Patches.

Wer von CVE-2023-4911 betroffen ist, sollte das System entsprechend der betroffenen Distribution patchen. RedHat hat Anweisungen für die Verwendung seiner SystemTap-Tools veröffentlicht, um zu erkennen, welche Binärdateien GLIBC_TUNABLES in der Umgebung aufrufen, und diese sofort zu beenden. Diese Lösung erfordert möglicherweise die Installation zusätzlicher Software und die Wiederholung des Prozesses beim Neustart des Systems.

Die Sicherheitslücke CVE-2023-4911 betrifft nicht nur Standard-Linux-Server, sondern auch Container, Appliances und IoT-Geräte. Überall, wo Linux eingesetzt wird, kann diese Sicherheitslücke daher vorhanden sei

 

Info: Weitere Informationen und technische Einzelheiten finden sich im Sysdig-Blog: https://sysdig.com/blog/cve-2023-4911/

#Sysdig