wenn ich das richtig verstanden habe besteht durch den
Shellshock-Bug in der bash die Möglichkeit innerhalb eines
Befehls (Schad-)Code auszuführen.
Die Möglichkeit besteht immer, und das ist auch gewünscht. Nur ist der übliche Weg, den Code über den Parameter -c mitzugeben. Will man verhindern, dass z. B. eine Webanwendung Aufrufe der bash nutzt, um ungewünschten Code auszuführen, schickt man den Aufruf durch einen Wrapper, der diesen Parameter ausfiltert.
Es ist auch durchaus gewünscht, dass über den env-Befehl neben Umgebungsvariablen auch Funktionen übergeben werden können - nur würde man erwarten, dass eine solche Funktion erst über den Parameter -c aufgerufen und ausgeführt wird.
Eine Funktion wird als Variable übergeben. Um diese Variable in eine Funktion zurückzuverwandeln, hat die bash die Funktion bereits ausgeführt (frag mich nicht, welches Konzept, welcher Gedankengang dahinter steckt. Mein Verstand ist solcher Wirrungen nicht fähig…). Und schwupp - ist der Rechner infiziert und der Wrapper hat das Nachsehen…
Durch den Bugfix wird die Möglichkeit, Funktionen zu übergeben und auszuführen, nicht eingeschränkt. Es wird lediglich verhindert, dass Funktionen unaufgefordert ausgeführt werden.
Gruß