Kritische Sicherheitslücke in GNU libc - Patches verfügbar

17. Februar 2016

Wie gestern bekannt wurde gibt es ein kritisches Problem in mehreren Versionen der GNU C Library (glibc ab Version 2.9). Ob der Dringlichkeit und des Umfangs des Problems bittet CERT.at um Beachtung der folgenden Hinweise.

Beschreibung

In der glibc-Funktion _nss_dns_gethostbyname4_r, welche für Namensauflösung verantwortlich ist, gibt es einen Fehler, der es einem Angreifer mittels übergrosser Netzwerkpakete erlaubt, einen Buffer-Overflow zu erzeugen, der in weiterer Folge zur Ausführung von Code missbraucht werden kann.

Eintrag in der CVE-Datenbank: CVE-2015-7547.

CVSS2 Score (Quelle: Redhat):
Base Score: 6.1
Base Metricts: AV:N/AC:H/Au:N/C:N/I:C/A:P
Access Vector: Network
Access Complexity: High
Authentication: None
Confidentiality Impact: None
Integrity Impact: Complete
Availability Impact: Partial

Auswirkungen

Da die betroffenen Funktionen mit DNS-Lookups zu tun haben, lässt sich der Fehler unter Umständen durch entfernte Angreifer ausnutzen, wenn diese einen Weg finden, die betroffene Software dazu zu bringen, DNS-Lookups auf durch den Angreifer kontrollierte Ressourcen zu machen. Das Team von Google Online Security hat dazu einen "Proof of Concept" veröffentlicht.

Grundsätzlich kann dies aber jede Software betreffen, die die entsprechenden Funktionen für DNS-Lookups benutzt - auch asynchron, wie etwa bei Log-Analyse, sowie auf Geräten, die nicht öffentlich im Internet erreichbar sind, etwa interne Mailgateways.

Nach erfolgreichem Ausnützen der Schwachstelle kann ein Angreifer beliebigen Code mit den Rechten des Benutzers, unter dessen Account die betroffene Software läuft, ausführen. Damit sind alle Daten auf diesen Systemen, sowie alle durch diese erreichbaren (etwa durch Datenbank-Anbindungen, Fileshares etc.) Daten und Systeme gefährdet.

Da die Lücke nun öffentlich bekannt ist, ist auch anzunehmen, dass sich diverse Akteure nun darauf konzentrieren werden, und entsprechend ist bald mit grossflächigen Kampagnen, die diese Schwachstelle auszunutzen versuchen, zu rechnen.

Betroffene Systeme

Der Fehler betrifft alle glibc-Versionen ab 2.9 (2008 veröffentlicht), also so gut wie alle aktuellen Linuxdistributionen. Momentan bekannt sind (Achtung, Liste ist nicht vollständig):
  • Debian 6 (Squeeze), 7 (Oldstable/Wheezy), 8 (Stable/Jessie), 9 (Testing/Stretch)
  • Red Hat Enterprise Linux 6, 7
  • Ubuntu 12.04, 14.04, 15.10
Auch manche Embedded Systeme können betroffen sein.

Nicht betroffen sind:

  • Systeme, auf denen glibc in Versionen vor 2.9 eingesetzt wird
  • Systeme, auf denen andere libc Varianten eingesetzt werden

Abhilfe

Es wird dringend empfohlen, die von den Betriebssystemen/Distributionen bereitgestellten Patches zu installieren, und alle Services, die die entsprechenden Funktionen benutzen, neu zu starten. Hier kann es oft einfacher sein, das ganze System neuzustarten.

Eine Methode, herauszufinden, welche laufenden Services gegen glibc gelinkt sind, und nach der Durchführung des Updates neu gestartet werden müssen, ist etwa:

lsof | grep libc | awk '{print $1}' | sort | uniq
Endbenutzern empfehlen wir die Updates der Linux-Distributionen zu installieren und ihre Systeme danach zu rebooten.

Sollte eine Installation der bereitgestellten Patches momentan nicht möglich sein, gibt es mehrere Möglichkeiten, die Auswirkungen der Schwachstelle zu mitigieren:

  • Firewallseitig TCP-/UDP-DNS-Pakete > 512 Bytes blockieren
  • Den lokalen Resolver so konfigurieren, dass er illegitime Antworten blockiert
  • In /etc/resolv.conf die Option edns0 deaktivieren

Hinweis

Generell empfiehlt CERT.at, wo möglich die "automatisches Update"-Features von Software zu nutzen, parallel Firewall-Software aktiv und den Virenschutz aktuell zu halten.
Informationsquelle(n):

CVE-Eintrag auf mitre.org (englisch)
https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2015-7547
Proof-of-Concept von Google (englisch)
https://github.com/fjserna/CVE-2015-7547