Der Entwickler Stephane Chazelas hat eine Sicherheitslücke in der Unix-Shell Bash gefunden, die unter Umständen das Ausführen von Schadcode aus der Ferne ermöglicht (CVE-2014-6271). Bash ist de facto die Standard-Shell auf den meisten Unix-Systemen, inklusive fast aller Linux-Distributionen und Mac OS. Auf fast allen anderen BSD-Varianten und einigen traditionellen UNIX-Systemen kann die Shell nachinstalliert werden, was viele Nutzer auch tun.

Eine verwundbare Bash-Shell unter Ubuntu

Bash ist überall

Wie Chazelas entdeckte, lässt sich in Umgebungsvariablen Code einfügen, der beim Start einer neuen Shell ungeprüft ausgeführt wird. Da Bash auf Unix-Systemen in allen erdenklichen Situationen genutzt wird, lässt sich schwer absehen, wo ein Angreifer die Lücke als Hebel einsetzen könnte, um Code auszuführen. Auf Webservern zum Beispiel wird Bash unter Umständen von CGI-Skripten genutzt. Ein denkbares Angriffsszenario sind GET-Requests über HTTP, da CGI laut den Bash-Entwicklern frei definierbare Inhalte des Requests in Umgebungsvariablen schreibt.

Außerdem führen viele Programmiersprachen Systembefehle aus, in dem sie zuerst eine Bash-Shell starten. Auch beim Zugriff auf ein System über OpenSSH lassen sich über die Lücke eventuell Sicherheitsmechanismen umgehen. Der Linux-Distributor Red Hat beschreibt in einem Blog-Artikel weitere Angriffsszenarien über DHCP-Clients und Systemdienste, die mit Administrator-Rechten laufen. Um die Lücke auszunutzen, müsste ein Angreifer dem Bash-Befehl eine Umgebungsvariable übergeben, in die er Befehle hineinschreiben kann. Die Variable kann dabei beliebig benannt werden.

Abhilfe

Ob das eigene System verwundbar ist, findet man laut Red Hat heraus, indem man in Bash den folgenden Befehl ausführt:

env x='() { :;}; echo vulnerable' bash -c "echo this is a test"

Gibt die Shell die Zeichenfolge vulnerable aus, ist sie verwundbar. Patches für Bash stehen nun bereit und sowohl Ubuntu als auch Red Hat und Debian haben mit der Verteilung einer neuen Bash-Version begonnen. Fedora und OpenSuse arbeiten ebenfalls daran, die Sicherheitslücke zu schließen.

Der Entdecker der Lücke hat diese zuerst an das Debian-Sicherheitsteam gemeldet, welches den Patch mit den Bash-Entwicklern beim GNU-Projekt koordiniert hatte. Die Veröffentlichung der Lücke wurde dann von mehreren Projekten koordiniert durchgeführt.

[Update: 25.09.2014 11:42]

Eine frühere Version des Artikels hatte die Veröffentlichung der Details zu dem Bug so dargestellt, als ob Informationen ungeplant durchgesickert sind. Allerdings war ein beteiligter Entwickler lediglich enttäuscht, dass im Zuge der Veröffentlichung Details aus einer vertraulichen E-Mail zitiert wurden.

[Update: 25.09.2014 13:58]

Formulierung geändert, die den Eindruck erweckte, Bash sei die Standard-Shell auf vielen BSD-Varianten.

(fab)