Betrifft der Shellshock Bash-Fehler ZSH?
Ist ein Upgrade von Bash die einzige Lösung?
bash
zsh
shellshock
marflar
quelle
quelle
Antworten:
Nein, ZSH ist davon nicht betroffen.
Sie MÜSSEN Bash immer noch aktualisieren, da die meisten Systemskripte für Bash geschrieben und für den Shellshock-Fehler anfällig sind.
So testen Sie Ihren ZSH:
Was genau macht dieser Code?
env x='() { :;}; echo vulnerable'
Erstellt eine Umgebungsvariable mit bekanntem Fehler mit dem Befehl am Ende der Variablenzsh -c 'echo hello'
Startet die ZSH-Shell mit einem einfachen Hallo (und wertet alle Umgebungsvariablen einschließlich x aus )Wenn Sie eine Ausgabe sehen:
Dann ist Ihr ZSH verwundbar. Meins (5.0.2) ist nicht:
quelle
bash
sind eine schlechte Angewohnheit für Systemdienstprogramme, da die Installation von bash nicht garantiert ist./bin/sh
ist die Standard-Shell und muss ein korrekter POSIX-Shell-Interpreter sein.env x='() { :;}; echo vulnerable' sh -c 'echo hello'
Über diesen Link :
Sie können feststellen, ob Sie für das ursprüngliche Problem in CVE-2014-6271 anfällig sind, indem Sie diesen Test ausführen:
Wenn Sie das Wort vulnerable in der Ausgabe dieses Befehls sehen, ist Ihre Bash anfällig und Sie sollten aktualisieren. Im Folgenden finden Sie eine anfällige Version von OS X 10.8.5:
Die folgende Ausgabe ist ein Beispiel für eine nicht anfällige Bash-Version.
quelle
env X='() { (a)=>\' bash -c "echo date"
Wird auf einer gepatchten Bash und trotz vieler Fehler eine Datei mit dem Namen erzeugen,echo
die das Datum enthält. Ich will nicht wissen warum.zsh
wird im Kern nicht verwendetbash
.bash
wird in Ihren Beispielen explizit genannt. Es spielt keine Rolle, mit welcher Shell Sie diese Zeilen ausführen. Diese Sicherheitsanfälligkeit betrifft die neu gestartete Bash-Shell und nicht die Shell, von der aus sie ausgeführt wird.bash
in den Beispielen durch ersetzen$SHELL
.Die Binärdatei ist nicht betroffen
Dies wirkt sich nicht auf
zsh
die ausführbare Shell-Datei aus, da der Quellcode nie den Fehler enthielt.Es gibt viele Ähnlichkeiten zwischen
bash
undzsh
, aber sie wurden unabhängig voneinander implementiert. Dasselbe Feature wird auf zwei verschiedene Arten implementiert, und - was in diesem Zusammenhang noch wichtiger ist - normalerweise mit unterschiedlichen Fehlern.Aber die interaktive Nutzung ist
Indirekt wirkt sich dies
zsh
fast genauso auf die interaktive Arbeit mit der Shell in einem Terminal aus wie auf die Arbeit mitbash
.Die Verwendung von
bash
ist einfach so üblich, dass man es kaum vermeiden kann, es zu nennen.Zu viele Verwendungen, um sie zu vermeiden
zsh
, aber tatsächlich enthaltenbash
.#!/bin/bash
diebash
als Interpreter verwendet werden.Viele Befehle, von denen Sie annehmen, dass sie Binärdateien sind, aber Shell-Skripte, von denen einige verwenden
bash
.An vielen Stellen, an denen eine Shell explizit ausgeführt wird,
bash
kann sie verwendet werden und ist möglicherweise erforderlich.xargs
Befehle odergit
Aliase mit Argumentenquelle
Nein, Shellshock wirkt sich nicht direkt auf zsh aus.
In vielen Umgebungen, in denen zsh als Standardshell verwendet wird, ist jedoch auch bash installiert. Jede Shell, einschließlich zsh, kann verwendet werden, um eine kompromittierte Bash-Shell zu erzeugen:
Um sich dagegen zu wehren, sollten Sie redundante Versionen von bash patchen, deinstallieren oder deaktivieren. Sie können die Bash-Installation des Systems deaktivieren mit
chmod
:Es ist jedoch üblich, dass Skripte Bash explizit aufrufen. Skripte, die dies tun, und solche, die bash-spezifische Skriptfunktionen verwenden, schlagen fehl, wenn bash nicht verfügbar ist. Patchen ist die beste Lösung.
quelle
importing function definition
" verwendet. Ich habe es auch mit SSH-Server-Injection getestet:ssh testuser@localhost '() { :;}; echo "$SHELL"'
wo ich dietestuser
Login-Shell auf/bin/zsh
/bin/zsh