Der Bug scheint nicht seit 25 Jahren durchgängig in der bash enthalten zu sein, zwischenzeitlich wurde er gefixt, hat sich dann aber wieder »eingeschlichen«.
Und ich habe mich schon gewundert warum meine alte BASH auf meinem CentOS das Problem nicht hat. Jetzt weiß ich wieder, warum ich altes abgehangenes laufen haben.
Du brauchst nur ein CGI Script auf dem Server in dem oben
#!/bin/bash
steht. Leider reicht das. Ich hatte das Vergnügen am Freitag.
Es dauert leider keine 2 Minuten um echt böse Exploits damit zu schreiben.
Ich dachte auch erst, dass das ganze übertrieben ist, aber ich habe es mir angeschaut.
Wow, Du kannst Googlen. Die Sache daran ist nur, eigentlich nutzt keiner mehr CGI, außer ein paar Nerds mit Perl & Co. Die sind aber wieder so Nerds, dass die ihre Systeme gleich gepatcht haben.
Selbst manche Perl, Ruby oder andere serverseitigen Komponenten benutzen FCGI und kleine Shell-Wrapper um sich zu starten.
Es ist nicht ungewöhnlich, das man so etwas findet:
Code:
#!/bin/sh
ROOT=`dirname $0`
exec ruby -I /var/ruby/1.8/gem_home/gems/fcgi-0.8.7/lib/ $ROOT/myfcgi.rb
Wie gesagt, Du kannst Googlen. Nur jeder, der Ruby nutzt und die Doku entsprechend gelesen hat, hat Ruby über eine der folgenden Arten laufen:
- keine Apache: dann läuft Ruby selber als Webserver mit dem Webrick.
- Apache, NGINX vorhanden: Ruby läuft als Webrick auf anderem Port, der von außen nicht erreichbar und der Webserver macht nur einen ReverseProxy.
- Apache: hat das Apache-Passenger-Modul laufen
Es ist gar nicht so unüblich, dass Webanwendungen Shell-Scripts aufrufen, um bestimmte Aktionen durchzuführen. Sobald darüber (oder im Falle von CGI mittels Systemaufrufen, die wiederum bash verwenden) Umgebungsvariablen durchgereicht werden, kann die Falle zuschnappen.
Das ist inzwischen schon sehr unüblich.
Bei OS X Server ist die Situation noch gefährlicher: Hier sind zahlreiche Serverdienste bereits vorinstalliert und eventuell betroffen. Da es sich hier größtenteils um Closed-Source-Software handelt, ist eine genaue Bedrohungslage schwer abzuschätzen. Also mal abwarten, wann Apple den Patch nachreicht
Nö, die BSD-Environment, die im Mac OS X läuft ist sehr quelloffen. Deswegen nutzt Apple es und hat da gar nichts eigenes. Du kannst Dir die BASH auch selber mit GCC, LVM, Xcode zusammen kompilieren und erstezen.
Ja, bei den Apps kommts natürlich stark darauf an, was der Entwickler verwendet. Im Webumfeld wird zum Beispiel bei PHP-FCGI für den
system-Befehl die Standardshell - und das ist bei OS X die Bash - aufgerufen.
Nur wenn PHP über CGI läuft. Das macht aber keiner mehr. Jeder nimmt das Apche-PHP-Modul und da ist es egal. Da besteht das Problem nicht.