Ich habe Ubuntu gerade über ein Update-Popup aktualisiert. Ich kenne Shellshock, also habe ich die Installation schnell durchgeführt. Wenn ich jetzt versuche,
env x='() { :;}; echo vulnerable' bash -c 'echo hello'
Ich erhalte nicht die Ausgabe (die ich vorher erhalten habe)
bash: warning: x: ignoring function definition attempt
bash: error importing function definition for `x'
hello
wie beschrieben inWas ist die Bash-Sicherheitslücke CVE-2014-6271 (Shellshock) und wie behebe ich sie?
Stattdessen bekomme ich jetzt nur noch „Hallo“. Kann man davon ausgehen, dass die von mir installierten Updates diese Fehlermeldungen verbergen? Nach der Überprüfung des Software Centers sehe ich die folgenden von mir installierten Updates:
unity-settings-daemon (14.04.0+14.04.20140414-0ubuntu1, 14.04.0+14.04.20140606-0ubuntu1
aptdaemon-data (1.1.1-1ubuntu5, 1.1.1-1ubuntu5.1)
python-aptdaemon.gtk3widgets (1.1.1-1ubuntu5, 1.1.1-1ubuntu5.1)
bash (4.3-7ubuntu1.3, 4.3-7ubuntu1.4)
python-aptdaemon (1.1.1-1ubuntu5, 1.1.1-1ubuntu5.1)
Genauer gesagt: Verbirgt 4.3-7ubuntu1.4 die Fehlermeldung zum Funktionsdefinitionsversuch? Entschuldigen Sie den Verdacht, aber nach einigem Googeln habe ich noch kein ähnliches Problem gefunden. Für jede Klarstellung wäre ich sehr dankbar. Danke!
Antwort1
Entsprechenddieser Beitrag im Fedora Magazine:
env x='() { :;}; echo OOPS' bash -c :
Dies gibt auf einem anfälligen System „OOPS“ aus, wird jedoch stillschweigend beendet, wenn Bash gepatcht wurde.
Dies ist das Verhalten, das bei folgenden Personen beobachtet wird:
- Debian
squeeze
(bash
Paket4.1-3+deb6u2
) - CentOS 6.5 (
bash
Paket0:4.1.2-15.el6_5.2
) - Arch Linux (
bash
Paket4.3.026-1
)
Ich vermute, dass dies das beabsichtigte Verhalten des Fixes ist, aber aus irgendeinem Grund haben die ersten bash
Patches von Ubuntu den Fehler erzeugt, anstatt den zusätzlichen Code stillschweigend zu ignorieren.
Die ersten Patches waren eigentlichbeabsichtigtum den Fehler zu erzeugen, wenn eine fehlerhafte Funktionsdefinition in einer Umgebungsvariable gefunden wurde. Die aktualisierten Patches suchen sogar nur in speziell vorangestellten Variablen, was fast alle Risiken in der Praxis eliminiert. Versuchen Sie es
env 'BASH_FUNC_x()'='() { :;}; echo OOPS' bash -c :
– Sie sollten einen Fehler sehen.
Ich habe dies überprüft:
$ env 'BASH_FUNC_x()'='() { :;}; echo OOPS' bash -c :
bash: warning: x: ignoring function definition attempt
bash: error importing function definition for `BASH_FUNC_x`
$ bash --version | head -1
GNU bash, version 4.3.11(1)-release (x86_64-pc-linux-gnu)
$ apt-cache policy bash | grep Installed
Installed: 4.3-7ubuntu1.4