Sicherheitslücke in Standardbibliothek glibc

von Dr. Martin Klein Hennig

Unabhängig voneinander haben Sicherheitsexperten von Red Hat und Google eine Schwachstelle in der Standardbibliothek glibc gefunden, die das Ausführen von Schadcode ermöglichen kann. „glibc“ steht für die „Gnu C Library“ und ist die im Unix-Bereich am weitesten verbreitete Standardbibliothek für die Programmiersprache C. So enthält glibc häufig verwendete Funktionen für Ein- und Ausgabe, Speichermanagement, mathematische Operationen und Netzwerkfunktionen.

Pufferüberlauf in getaddrinfo()

Die Sicherheitslücke existiert seit 2008 und betrifft konkret die glibc-Funktion getaddrinfo(), die verwendet wird, um menschenlesbare Adressen wie Hostnamen oder IP-Adressen in die interne addrinfo-Struktur umzuwandeln. Die Funktion beinhaltet einen DNS-Resolver, der Anfragen an DNS-Server, z.B. zum Ermitteln der IP-Adresse eines gegebenen Hostnamens, schickt. Der Pufferüberlauf kann bei der Verarbeitung der Serverantwort auftreten. Intern reserviert glibc nämlich 2048 Bytes auf dem Stack für die Antwort. Bei einer Antwort, deren Länge 2048 Bytes überschreitet, werden zwar neue Speicher reserviert und Zeiger auf den neuen Speicher aktualisiert, allerdings nicht zuverlässig. Unter bestimmten Voraussetzungen kann es passieren, dass die überlange DNS-Antwort doch auf den Stack geschrieben wird, was zu einem Pufferüberlauf führt: Die Funktion schreibt in für sie nicht vorgesehene Speicherbereiche. Dass kann zur Folge haben, dass das System instabil wird und eine Anwendung abstürzt. Allerdings lässt sich so auch schadhafter Programmcode im Speicher unterbringen, der vom Prozessor ausgeführt werden kann.

Ausnutzen des Überlaufs

Zum Ausnutzen der Sicherheitslücke muss ein Angreifer also eine manipulierte DNS-Antwort an das Zielsystem übermitteln ...

Zum vollständigen Artikel

Cookies helfen bei der Bereitstellung unserer Dienste. Durch die Nutzung erklären Sie sich mit der Cookie-Setzung einverstanden. Mehr OK