Ein Pufferüberlauf in der GNU libc hat zur Folge, dass lokale Angreifer Befehle mit höheren Rechten ausführen können. Die GNU libc-Bibliothek stellt verschiedene Funktionen bereit, darunter auch die Möglichkeit zum dynamischen Laden von Softwarekomponenten. Verantwortlich für die Schwachstelle ist ein Pufferüberlauf.
Dieser Pufferüberlauf kann während der Verarbeitung der Umgebungsvariable GLIBC_TUNABLES auftreten. Durch die Ausnutzung dieses Pufferüberlaufs ist es möglich, auf aktuellen Debian-, Ubuntu- und Fedora-Systemen Root-Rechte zu erlangen. Die Sicherheitslücke wurde unter der Bezeichnung CVE-2023-4911 erfasst und erhielt einen CVSS-Wert von 7.8, was auf ein erhebliches Sicherheitsrisiko hinweist.
Der dynamische Loader ld.so verarbeitet Benutzerdaten aus der Umgebungsvariable GLIBC_TUNABLES. Der Code erwartet Parameter im Format tuneable1=wert1:tuneable2=wert2. Lokale Angreifer können durch die Angabe von tuneable1=tuneable2=wert einen Pufferüberlauf auslösen und den Stackzu modifizieren, um Root-Rechte zu erlangen und das System zu übernehmen.
Der Fehler kann durch folgenden Befehl reproduziert werden:
$ env -i “GLIBC_TUNABLES=glibc.malloc.mxfast=glibc.malloc.mxfast=A” “Z=`printf ‘%08192x’ 1`” /usr/bin/su –help
Segmentation fault (core dumped)
