Update - Kritische Sicherheitslücke in bash

25. September 2014

Update 9h10:
CVE-2014-6271 ergänzt

Update 29. September 2014
Informationen zu CVE-2014-7186, CVE-2014-7187 ergänzt

Beschreibung

In der verbreiteten UNIX/Linux-Shell 'bash' (Bourne Again Shell) wurde ein Fehler in der Methode mit der Umgebungsvariablen verarbeitet werden entdeckt. Durch Ausnutzung dieses Fehler kann beliebiger Code auf betroffenen Systemen ausgeführt werden, in bestimmtem Situationen ist dies auch über das Netzwerk (Internet) möglich.

CVEs: CVE-2014-7169 und CVE-2014-6271

Update 29. 9. 2014
weitere CVEs: CVE-2014-7186, CVE-2014-7187

Wie unter anderem heise berichtet, wurden noch weitere Sicherheitsprobleme in bash entdeckt. Teilweise sind diese durch die mit den am Freitag erschienenen Updates abgedeckt (Debian, Red Hat, Fedora), teilweise wurden dafür eigene Updates veröffentlicht (zB Ubuntu).

Weiters hat der Researcher Michal Zalewski angekündigt, in einigen Tagen Informationen zu einem weiteren Problem, CVE-2014-6277, sowie zu einem noch unbenannten Bug zu veröffentlichen.
Er empfiehlt dringend, den verlinkten Patch von Florian Weimer einzuspielen, wenn keine entsprechenden Updates der Betriebssystem-Hersteller verfügbar sind.

CVSS v2 metrics (von Redhat https://access.redhat.com/security/cve/CVE-2014-7169 bzw. https://access.redhat.com/security/cve/CVE-2014-6271):

NOTE: The following CVSS v2 metrics and score provided are preliminary and subject to review.

Für CVE-2014-7169:
Base Score:5.1
Base Metrics:AV:N/AC:H/Au:N/C:P/I:P/A:P
Access Vector:Network
Access Complexity:High
Authentication:None
Confidentiality Impact:Partial
Integrity Impact:Partial
Availability Impact:Partial

Für CVE-2014-6271:
Base Score:7.5
Base Metrics:AV:N/AC:L/Au:N/C:P/I:P/A:P
Access Vector:Network
Access Complexity:Low
Authentication:None
Confidentiality Impact:Partial
Integrity Impact:Partial
Availability Impact:Partial

Update 29. 9. 2014:

CVSS v2 metrics (von Redhat https://access.redhat.com/security/cve/CVE-2014-7186 bzw. https://access.redhat.com/security/cve/CVE-2014-7187):

Für CVE-2014-7186:
Base Score:4.6
Base Metrics:AV:L/AC:L/Au:N/C:P/I:P/A:P
Access Vector:Local
Access Complexity:Low
Authentication:None
Confidentiality Impact:Partial
Integrity Impact:Partial
Availability Impact:Partial

Für CVE-2014-7187:
Base Score:4.6
Base Metrics:AV:L/AC:L/Au:N/C:P/I:P/A:P
Access Vector:Local
Access Complexity:Low
Authentication:None
Confidentiality Impact:Partial
Integrity Impact:Partial
Availability Impact:Partial

Auswirkungen

In bash ist es möglich, nicht nur Variablen, sondern auch Shell-Funktionen über die Umgebung (Environment) zu übergeben.

In bestimmten Situationen, etwa wenn auf Webservern durch CGI-Skripte auf System-Kommandos zugegriffen wird und die Default-Shell des Systems bash ist, lässt sich dies auch über das Netzwerk ausnutzen, um auf diesen Systemen beliebigen Code mit den Rechten des Webservers auszuführen, je nach Konfiguration auch ohne Authentication.

Systeme, auf denen etwa per ssh nur bestimmte Kommandos (im Gegensatz zu interaktiven Shells) zugelassen werden, können auch von diesem Fehler betroffen sein.

Systeme, die mit bestimmten DHCP-Clients (etwa ISC DHCP dhclient) IP-Adressen per DHCP beziehen, und dann das System über System-Kommandos konfigurieren, können ebenfalls betroffen sein.

Betroffene Systeme

Alle Systeme, auf denen bash in den entsprechenden Versionen installiert ist. Dies ist auf den meisten GNU/Linux Distributionen der Fall, oft ist bash auch die Default-Shell solcher Systeme.

Dies sind zum Beispiel (Liste nicht vollständig):

  • alle uns bekannten GNU/Linux Distributionen wie etwa
    • Debian
    • Fedora
    • CentOS
    • Red Hat Enterprise Linux
    • Gentoo
    • Ubuntu
    • Novell/SuSE
  • *BSD-Systeme, wenn bash installiert ist, wie etwa
    • OpenBSD
    • NetBSD
    • FreeBSD

Wenn bash installiert ist, kann dies auch etwa Mac OS X, Sun Solaris, IBM AIX und andere UNIX-Derivate betreffen.

Auch für Microsoft Windows existieren Methoden, UNIX-Shells zu benutzen (etwa "Cygwin", Microsoft Services for UNIX), dadurch kann es möglich sein, auch dort eine verwundbare Version von bash auf dem System zu haben.

Weiters kann dies auch diverse Endgeräte betreffen, die intern auf GNU/Linux basieren und bash installiert haben, etwa Home-Router, WLAN Access Points und dergleichen.

Abhilfe

Installation der entsprechenden gefixten Versionen der Distributionen bzw. Betriebssystem-Hersteller.
Applizieren der zur Verfügung stehenden Patches und Neu-Kompilieren von bash.

Speziell auf Webservern sollte auch darauf geachtet werden, in CGI-Skripten nur bestimmte Environment-Variablen zuzulassen, und diese syntaktisch zu prüfen.

Die Default-Shell betroffener Systeme kann bis zur Installation der entsprechenden Patches auch auf eine andere Shell, etwa dash, geändert werden. Auch die Shell speziell exponierter User (etwa für Webserver, oft www-data) sollte bis dahin nicht bash sein. Natürlich sollte in diesem Fall getestet werden, ob alle notwendigen Programme dann noch wie gewünscht funktionieren.

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):

Debian Security Advisory DSA-3032-1 (englisch)
https://lists.debian.org/debian-security-announce/2014/msg00220.html
Red Hat Security Blog Eintrag (englisch)
https://securityblog.redhat.com/2014/09/24/bash-specially-crafted-environment-variables-code-injection-attack/
Thread auf der OSS-Sec Mailingliste (englisch)
http://seclists.org/oss-sec/2014/q3/649
Beitrag auf CSO Online (englisch)
http://www.csoonline.com/article/2687265/application-security/remote-exploit-in-bash-cve-2014-6271.html
Beitrag auf Invisible Threat, inkl. Beispielen (englisch)
https://www.invisiblethreat.ca/2014/09/cve-2014-6271/
Blog-Post von Michal Zalewski (englisch)
http://lcamtuf.blogspot.de/2014/09/bash-bug-apply-unofficial-patch-now.html
Beitrag bei Heise Security
http://www.heise.de/security/meldung/ShellShock-Teil-3-Noch-drei-Sicherheitsprobleme-bei-der-Bash-2404788.html