Login
Newsletter
Werbung

Mi, 28. Januar 2015, 10:46

Software::Security

Geisteraustreibung bei glibc

Ein Fehler in glibc ermöglicht in Linux-Distributionen mit einer älteren glibc-Version die Remote-Ausführung von beliebigem Code. Die Firma Qualys hat diesen Fehler GHOST getauft.

qualys.com

Qualys entdeckte das Problem nach eigenen Angaben bei einem internen Code-Audit und veröffentlichte nun eine eingehende Analyse. Es stellte sich heraus, dass der Fehler in glibc 2.2 im November 2000 auftauchte und in glibc 2.18 im August 2013 behoben wurde. Er wurde zu diesem Zeitpunkt allerdings nicht als sicherheitsrelevant erkannt. Das führte dazu, dass die Anwender von immer aktuellen Distributionen wie Fedora oder von Rolling-Release-Distributionen wie Gentoo oder Arch Linux nicht betroffen sind. Im Gegensatz dazu wurden langlebigere Distributionen erst jetzt auf das Problem aufmerksam und haben Updates veröffentlicht.

Der Fehler selbst ist ein klassischer Pufferüberlauf, der sich in der Funktion gethostbyname und deren Varianten befindet. Durch einen Fehler bei der Berechnung der benötigten Puffergröße allokiert der Funktionsaufruf soviele Bytes zuwenig, wie zur Speicherung eines Zeigers (4 oder 8 Bytes) nötig sind. Angreifer können dadurch ein betroffenes Server-Programm von außen zu einem Pufferüberlauf von bis zu vier Bytes bringen. Das mag sich nach wenig anhören, ist aber ausreichend, da schon früher demonstriert wurde, dass bereits ein Überlauf von einem Byte, in das lediglich eine 0 geschrieben wird, zum Einschleusen und Ausführen beliebigen Codes ausreichend sein kann.

Ein erfolgreicher Angriff auf ein verwundbares Programm hängt laut Qualys von einigen Bedingungen ab, die nicht leicht zu erfüllen sind. Aus diesem Grund sind die meisten Programme mit setuid-Bit nicht angreifbar. Auch viele andere Programme sind sicher, da das entscheidende Argument von gethostbyname nicht die Form annehmen kann, die für den Angriff benötigt wird. Dazu kommt noch, dass die Familie der gethostbyname-Aufrufe bereits obsolet ist. Moderne Programme sollen stattdessen getaddrinfo() verwenden; dies ist sogar ein Muss, wenn IPv6 korrekt unterstützt werden soll.

Trotz dieser Faktoren, die das Problem abmildern, existieren einige Programme, die betroffen sind. Dazu gehören clockdiff, procmail unter bestimmten Bedingungen, pppd und Exim. Auch die Verwundbarkeit des Mail-Transfer-Programms Exim existiert nur, wenn zusätzliche Sicherheitsprüfungen für Hostnamen konfiguriert sind. Trotzdem dürfte Exim einen der größten Problemfälle darstellen.

Qualys hat darüber hinaus Beispiele angegeben, wie sich die Lücke ausnutzen lässt, und gibt an, dass das Problem durch keine der üblichen Sicherungsmaßnahmen im Kernel gestoppt werden kann. Alle Linux-Anwender, insbesondere die mit glibc-Versionen vor 2.18, sollten ihre Distributions-Updates schnellstens einspielen.

Werbung
Pro-Linux
Pro-Linux @Facebook
Neue Nachrichten
Werbung