Eine Schwachstelle in Glibc ld.so, die es ermöglicht, Root-Rechte im System zu erlangen

Die Firma Qualys hat eine kritische Schwachstelle (CVE-2023-4911) im Linker ld.so festgestellt, der Teil der systemeigenen C-Bibliothek Glibc (GNU libc) ist. Diese Schwachstelle ermöglicht es einem lokalen Benutzer, seine Berechtigungen im System zu erhöhen, indem er speziell formatierte Daten in der Umgebungsvariable GLIBC_TUNABLES angibt, bevor er eine ausführbare Datei mit dem suid root-Flag, beispielsweise /usr/bin/su, startet.

Die erfolgreiche Ausnutzung der Schwachstelle wurde in Fedora 37 und 38, Ubuntu 22.04 und 23.04, Debian 12 und 13 demonstriert. Es wird vermutet, dass die Schwachstelle auch in anderen Distributionen auftritt, die Glibc verwenden. Distributionen, die auf der systemeigenen C-Bibliothek Musl basieren, wie Alpine Linux, sind von diesem Problem nicht betroffen. Die Schwachstelle wurde in einem Patch behoben, der am 2. Oktober hinzugefügt wurde. Die Veröffentlichung von Paketaktualisierungen in den Distributionen kann auf den Seiten von Debian, Ubuntu, RHEL, SUSE/openSUSE, Fedora, Arch, Gentoo und ALT Linux verfolgt werden.

Die Schwachstelle resultiert aus einer Änderung, die im April 2021 vorgenommen und in die Version glibc 2.34 integriert wurde. Aufgrund eines Fehlers im Code zur Verarbeitung der Zeichenfolge, die in der Umgebungsvariable GLIBC_TUNABLES angegeben ist, führt eine falsche Kombination von Parametern in dieser Variablen dazu, dass der analysierte Wert über den zugewiesenen Speicherbereich hinaus geschrieben wird. Das Problem tritt auf, wenn anstelle der standardmäßigen Sequenzen "name=val" die Parameter in Form einer doppelten Zuweisung "name=name=val" festgelegt werden. In diesem Fall wird die Zuweisung zweimal verarbeitet, zunächst als "name=name=val" und dann als "name=val". Durch diese doppelte Verarbeitung entsteht das Ergebnis "name=name=val:name=val", dessen Größe den Puffer tunestr überschreitet.

Forscher haben ein stabil funktionierendes Exploit entwickelt, das root-Rechte bei der Verwendung nahezu jedes Programms mit dem suid root-Flag ermöglicht. Ausnahmen bilden die sudo-Utility (die den ELF RUNPATH-Wert ändert), die chage- und passwd-Utilities in Fedora (die durch spezielle SELinux-Regeln geschützt sind) sowie die snap-confine-Utility in Ubuntu (die durch spezielle AppArmor-Regeln geschützt ist). Die vorgeschlagene Exploit-Methode funktioniert ebenfalls nicht in RHEL 8 und RHEL 9, obwohl diese Versionen anfällig für die gleiche Schwachstelle sind (ein alternativer Exploit muss erstellt werden, um die Attacke durchzuführen). Der Code des Exploits wird später veröffentlicht, nachdem die Schwachstelle umfassend behoben wurde. Sie können ihre Systemanfälligkeit gegenüber der Schwachstelle mit dem unten angegebenen Befehl überprüfen, der im Falle eines Problems mit einem Fehler endet: env -i "GLIBC_TUNABLES=glibc.malloc.mxfast=glibc.malloc.mxfast=A" "Z=`printf '192x' 1`" /usr/bin/su --help

Es wird zusätzlich die Behebung von zwei weiteren Schwachstellen in Glibc hervorgehoben:

  • CVE-2023-4806 — ein Zugriff auf einen bereits freigegebenen Speicherbereich (Use-after-free) in der Funktion getaddrinfo(). Dies tritt auf, wenn das NSS-Plugin nur die Callback-Aufrufe „_gethostbyname2_r“ und „_getcanonname_r“ implementiert, aber den Aufruf „_gethostbyname3_r“ nicht unterstützt. Um die Schwachstelle auszunutzen, muss der DNS-Server eine große Anzahl von IPv6- und IPv4-Adressen für den angeforderten Host zurückgeben, was zum Absturz des Prozesses führt, der die Funktion getaddrinfo für die Familie AF_INET6 mit den Flags AI_CANONNAME, AI_ALL und AI_V4MAPPED aufruft.
  • CVE-2023-5156 — ein Speicherinhalt leak bei der Aufruf der Funktion getaddrinfo für die Adressfamilie AF_INET6 mit den gesetzten Flags AI_CANONNAME, AI_ALL und AI_V4MAPPED.

Quelle: opennet.ru

Kaufen Sie zuverlässiges Hosting für Websites mit DDoS-Schutz, VPS VDS-Server 🔥 Kaufen Sie zuverlässiges Hosting für Websites mit DDoS-Schutz, VPS VDS-Server | ProHoster