CVE-2023-4911 Looney Tunables

CVE-2023-4911 Verrückte Tunables

Celia Catalán


Im Jahr 2023 meldete das Qualys-Team eine Schwachstelle mit hoher Kritikalität, die eine große Anzahl von Linux-Versionen betraf. Dabei handelte es sich um eine Eskalation lokaler Privilegien durch Ausnutzung des Pufferüberlaufs im dynamischen Loader der GNU-C-Bibliothek (glibc). 

Der dynamische Lader, der die Umgebungsvariable GLIBC_TUNABLES verarbeitet, verursacht diesen Überlauf, und ein böswilliger Agent könnte diese Variable verwenden, um Binärdateien mit SUID-Berechtigungen zu starten und so Code mit erhöhten Rechten auszuführen. 

Um diese Schwachstelle zu reproduzieren, wurde eine Testumgebung implementiert. Zunächst müssen Sie auf die anfällige Maschine zugreifen: 

Zerolynx: conexión por SSH a la máquina vulnerable


Um die Ausnutzung durchführen zu können, müssen Sie den bereitgestellten POC verstehen. 

Der dynamische Loader verwendet die Umgebungsvariablen gclib_tunables, die es Entwicklern ermöglichen, das Verhalten der Bibliothek zur Laufzeit dynamisch zu ändern. 

In diesem Fall sucht der Code nach allen gclib_tunables-Variablen in den Umgebungsvariablen und kopiert sie in eine neue Variable. Die Sicherheitslücke entsteht, wenn die Variable unerwartete Eingaben enthält, da diese nicht sicher verarbeitet werden und einen Pufferüberlauf verursachen. 

Als Verwertungsvoraussetzung müssen Sie über Folgendes verfügen: 

  • Ausführen von Code mit eingeschränkten Berechtigungen auf einem anfälligen System. 

POC


Nachdem wir mithilfe der Datei gen_libc.py, die sich in diesem Fall bereits auf dem Computer befindet, überprüft haben, ob sie für Looney Tunables anfällig ist, führen wir sie aus, um den Exploit zu generieren. 

Zerolynx: Uso del archivo Gen_Libc.py


Der nächste Schritt besteht darin, den Exploit mit GCC zu kompilieren. Die Datei, die kompiliert werden muss, ist exp.c  

Zerolynx: malware ejecutable generado

Nach der Ausführung beider Befehle werden zwei Dateien generiert, der zum Ausnutzen der Sicherheitslücke erforderliche POC: 
  • Eine ausführbare Datei: „exp“ 
  • Der Exploit: „lib.so.6“ 

Zerolynx:. ejecución de malware

Nach dem Ausführen der Datei, die den Exploit enthielt, können Sie nach kurzer Zeit sehen, wie der Exploit abgeschlossen und die Eskalation der Rechte erfolgreich durchgeführt wurde. 

Abschluss 

Diese Schwachstelle in der GNU-C-Bibliothek (glibc) unterstreicht die Bedeutung einer sicheren Verwaltung von Umgebungsvariablen auf Linux-Systemen. Um diese Schwachstelle gezielt zu mindern, muss das Glibc-Paket auf die gemeinsam verfügbaren neuen Versionen aktualisiert werden und es muss überprüft werden, ob die Änderungen zufriedenstellend angewendet wurden.

Javier Muñoz , Cybersicherheitsanalyst bei Zerolynx und 
Jorge Ezequiel de Francisco , Cybersicherheitsanalyst bei Zerolynx .
Zurück zum Blog

Hinterlasse einen Kommentar

Bitte beachten Sie, dass Kommentare vor der Veröffentlichung genehmigt werden müssen.