Am 24. September 2014 wurde bekannt, dass die Linux-Kommandozeile Bash Befehle ausführt, die an eine bestimmte Anweisung angehängt werden: Der Shellshock-Bug. Dadurch können Kommandos unbemerkt eingeschleust werden.

Zudem können sie aus dem vorgesehenen Bereich ausbrechen und auf den gesamten Computer zugreifen. Besonders kritisch ist das, weil Bash nicht nur für manuelle Eingaben benutzt wird, sondern für eine schier unendliche Zahl von Programmen die Standard-Schnittstelle zum Linux-System darstellt. Die bekannteste und gefährlichste dieser Anwendungen ist die CGI-Schnittstelle, mit der Webserver Befehle aus dem Internet entgegennehmen und an interne Komponenten weitergeben. Über dieses Einfallstor können Schadprogramme Server befallen, auf denen Web-Dienste angeboten werden. In Bash kann man Textvariablen anlegen, die Funktionen definieren. Auf diese Weise können Funktionen abgelegt und später wieder aufgerufen werden.

Das Problem entsteht nun, wenn an so eine Funktions-Definition weitere Befehle angehängt werden. Das macht eigentlich keinen Sinn und sollte eine Fehlermeldung erzeugen oder ignoriert werden – tatsächlich werden Befehle an dieser Stelle jedoch ungeprüft ausgeführt. Für Angreifer steht das betroffene System damit sperrangelweit offen. Anfällig dafür sind alle Systeme, die die Kommandozeile Bash enthalten. Das sind Linux und verwandte Plattformen. Ob ein Rechner den Shellshock-Bug hat, können Sie mit folgendem Befehl herausfinden: env x='() { :;}; echo verwundbar’ bash -c ‘echo Das ist ein Test.’ Auf anfälligen Systemen erscheint das Wort “verwundbar”, gefolgt von “Das ist ein Test.” Erscheint nur “Das ist ein Test.”, so ist der Rechner sicher. Für die meisten Distributionen stehen bereits Updates bereit, die die Lücke schließen.