In der Welt der Cybersicherheit sind Schwachstellen ein allgegenwärtiges Problem. Kürzlich haben Sicherheitsforscher eine bemerkenswerte Schwachstelle im dynamischen Loader der GNU C-Bibliothek entdeckt, die oft als ld.so bezeichnet wird. Diese Schwachstelle mit der Bezeichnung CVE-2023-4911 stellt ein erhebliches Sicherheitsrisiko dar, da sie möglicherweise eine lokale Rechteausweitung ermöglicht. In diesem Blogbeitrag werden wir die Feinheiten dieser Schwachstelle untersuchen und ihre Auswirkungen, Ausnutzung und mehr beleuchten.
Zusammenfassung
Der dynamische Loader der GNU C-Bibliothek, ld.so, spielt eine entscheidende Rolle beim Auffinden und Laden von gemeinsam genutzten Bibliotheken, die von Programmen benötigt werden, sowie bei deren Vorbereitung und Ausführung. Dieser Prozess ist sicherheitsrelevant, insbesondere wenn ein lokaler Benutzer ein Programm mit erhöhten Berechtigungen ausführt. In der Vergangenheit waren Probleme im Zusammenhang mit der Verarbeitung von Umgebungsvariablen wie LD_PRELOAD, LD_AUDIT und LD_LIBRARY_PATH eine häufige Quelle von Schwachstellen im dynamischen Loader.
Die fragliche Schwachstelle wurde bei der Handhabung der Umgebungsvariable GLIBC_TUNABLES entdeckt, die im April 2021 eingeführt wurde (glibc 2.34). Bei dieser Schwachstelle handelt es sich im Wesentlichen um einen Pufferüberlauf, der beim Parsen von GLIBC_TUNABLES ausgelöst wird. Sie wurde durch Commit 2ed18c eingeführt („Fix SXID_ERASE behavior in setuid programs (BZ #27471)“).
Auswirkungen
Diese Sicherheitslücke kann einem Angreifer volle Root-Rechte auf Systemen gewähren, auf denen die betroffenen glibc-Versionen laufen. Insbesondere Standardinstallationen beliebter Linux-Distributionen wie Fedora 37 und 38, Ubuntu 22.04 und 23.04 sowie Debian 12 und 13 erwiesen sich als anfällig. Obwohl nicht alle Distributionen als anfällig bestätigt sind, gehen die Forscher davon aus, dass diese Anfälligkeit auch bei anderen Distributionen vorhanden sein könnte.
Konzeptioneller Beweiß
Den Forschern gelang es, die Schwachstelle mithilfe eines Proof of Concept nachzuweisen. Indem sie eine bösartige Umgebungsvariable als Teil des GLIBC_TUNABLES-Parameters erstellten, konnten sie einen Segmentierungsfehler auslösen, der zu einer möglichen Rechteausweitung führte.
Ausbeutung
Um diese Schwachstelle auszunutzen, muss der Speicher mit beliebigem Code überschrieben werden, um Code auszuführen. Die Herausforderung besteht darin, ein geeignetes Ziel für dieses Überschreiben des Speichers zu finden. Im Fall von ld.so wird dies dadurch erschwert, dass der Speicher mit mmap() zugewiesen wird und das Überschreiben des eigenen Speichers von ld.so zu sofortigen Abstürzen führen würde.
Die Forscher untersuchten verschiedene Optionen und konzentrierten sich schließlich auf das Überschreiben des Zeigers l_info[DT_RPATH] in der bald zuzuweisenden link_map-Struktur. Dieser Zeiger steuert den Bibliothekssuchpfad und ermöglicht es dem Angreifer, ld.so zu zwingen, Bibliotheken aus einem von ihm kontrollierten Verzeichnis zu laden. Dies könnte letztendlich zur Ausführung willkürlichen Codes mit erhöhten Berechtigungen führen.
Anerkennungen
Sicherheitsforschung ist oft eine Gemeinschaftsarbeit, und diese Entdeckung war keine Ausnahme. Die Forscher möchten Red Hat Product Security, Siddhesh Poyarekar, den Mitgliedern von linux-distros@openwall, Salvatore Bonaccorso und Solar Designer für ihre Beiträge und Unterstützung während dieser Untersuchung danken.
Geschichte
1. 4. September 2023: Hinweis und Exploit an secalert@redhat gesendet.
2. 19. September 2023: Hinweis und Patch an linux-distros@openwall gesendet.
3. 3. Oktober 2023: Koordiniertes Veröffentlichungsdatum (17:00 UTC).
Schließlich ist die Sicherheitslücke CVE-2023-4911 im dynamischen Loader (ld.so) der GNU C-Bibliothek ein erhebliches Problem für Linux-Systeme. Sie unterstreicht, wie wichtig es ist, Patches umgehend anzuwenden und Systeme auf dem neuesten Stand zu halten, um solche Sicherheitslücken zu beheben. Wie immer ist Wachsamkeit im Bereich der Cybersicherheit unerlässlich, um potenziellen Bedrohungen und Sicherheitslücken immer einen Schritt voraus zu sein.
Durch RELIANOID ADC Load Balancer (sowohl Community Edition als auch Enterprise Edition) basieren auf Debian 10 und sind von dieser Sicherheitslücke nicht betroffen. Alle Schwachstellenbehebungen, die von RELIANOID sind veröffentlicht unter dem historische Zeitstrahl.