CVE-2014-6271 ist ein kritischer Fix mit großer Auswirkung. Wenn Sie ein Linux-System verwenden, sollten Sie diese Schwachstelle beheben.
Diese Schwachstelle CVE-2014-6271 (und CVE-2014-7169) wird auch als Shellshock bezeichnet.
Es wurde ein Fehler in der Art und Weise gefunden, wie Bash bestimmte speziell gestaltete Umgebungsvariablen auswertet. Ein Angreifer könnte diesen Fehler nutzen, um Umgebungsbeschränkungen zu überschreiben oder zu umgehen, um Shell-Befehle auszuführen. Bestimmte Dienste und Anwendungen ermöglichen es entfernten, nicht authentifizierten Angreifern, Umgebungsvariablen bereitzustellen, wodurch sie dieses Problem ausnutzen können.
Mithilfe der Bash-Shell ermöglicht diese Schwachstelle einem Angreifer, zufällige Shell-Befehle in Ihrer Umgebung auszuführen. Die Idee dahinter ist, dass ein Angreifer die Beschränkung der Umgebungsvariablen umgehen kann, was es ihm erlaubt, Shell-Befehle auszuführen.
Bitte beachten Sie, dass einige Dienste (oder Anwendungen), die auf Linux-Servern ausgeführt werden, es nicht authentifizierten Angreifern ermöglichen könnten, einige Umgebungsvariablen anzugeben, die es ihnen wiederum ermöglichen, diese Schwachstelle ohne Authentifizierung über das Netzwerk auszunutzen.
Alles, was Sie tun müssen, um dies zu beheben, ist, Ihre Bash auf die neueste Version zu aktualisieren. Gehen Sie beispielsweise unter RedHat oder CentOS wie folgt vor, um dieses Problem zu beheben:
yum update bash
Ist Ihr System anfällig für CVE-2014-6271?
RedHat hat das folgende Skript bereitgestellt, um zu testen, ob Ihr System anfällig ist oder nicht.
Wenn Sie in der Ausgabe das Wort „vulnerable“ sehen, ist Ihr System anfällig.
env 'x=() { :;}; echo vulnerable' 'BASH_FUNC_x()=() { :;}; echo vulnerable' bash -c "echo test"
Bitte beachten Sie, dass in der Ausgabe möglicherweise auch eine Fehlermeldung zusammen mit dem Wort „anfällig“ angezeigt wird. Das Folgende ist beispielsweise die Ausgabe auf einem anfälligen RedHat 5- und RedHat 6- (und CentOS 5 und 6-) System.
# env 'x=() { :;}; echo vulnerable' 'BASH_FUNC_x()=() { :;}; echo vulnerable' bash -c "echo test" vulnerable bash: BASH_FUNC_x(): line 0: syntax error near unexpected token `)' bash: BASH_FUNC_x(): line 0: `BASH_FUNC_x() () { :;}; echo vulnerable' bash: error importing function definition for `BASH_FUNC_x' test
Bash-Version vor dem Fix
Bevor Sie das Problem beheben, überprüfen Sie Ihre aktuelle Bash-Version. Auf RedHat 5 (und CentOS 5) hatte ich vor dem Fix die folgende Bash-Version:
# rpm -qa | grep bash bash-3.2-24.el5
Auf RedHat 6 (und CentOS 6) hatte ich vor dem Fix die folgende Bash-Version:
# rpm -qa | grep bash bash-4.1.2-3.el6.x86_64
CVE-2014-6271 beheben
Aktualisieren Sie jetzt die Bash mit yum (oder einem anderen Paketverwaltungsprogramm für Ihre entsprechende Distribution)
yum update bash
Unter RedHat 5 (und CentOS 5) ist das Folgende die Bash-Version nach dem Update, das die Schwachstelle behoben hat.
# rpm -qa | grep bash bash-3.2-33.el5_11.4
Unter RedHat 6 (und CentOS 6) ist das Folgende die Bash-Version nach dem Update, das die Schwachstelle behoben hat.
# rpm -qa | grep bash bash-4.1.2-15.el6_5.2.x86_64
Testen Sie die Schwachstelle CVE-2014-6271 nach der Behebung
Nachdem die Bash auf die neueste Version aktualisiert wurde, sehen Sie beim Ausführen des Tests das Wort „anfällig“ in der folgenden Befehlsausgabe nicht. Bitte beachten Sie, dass die unten angezeigte Warnung und Fehlermeldung OK ist.
# env 'x=() { :;}; echo vulnerable' 'BASH_FUNC_x()=() { :;}; echo vulnerable' bash -c "echo test" bash: warning: x: ignoring function definition attempt bash: error importing function definition for `BASH_FUNC_x' test
Was ist mit CVE-2014-7169?
Nachdem der anfängliche Fix veröffentlicht wurde, fand Redhat heraus, dass der CVE-2014-6271-Fix unvollständig war und Bash unter bestimmten Umständen immer noch einige Zeichen zuließ, die in die Umgebungsvariable eingefügt werden konnten.
Wenn Sie die Yum-Update-Bash aus dem vorherigen Schritt durchgeführt haben, wird automatisch die neueste Version von Bash abgerufen, die auch den Fix für CVE-2014-7169 enthält. Sie müssen also wirklich nichts Besonderes für diesen Fix tun.
Sie können jedoch trotzdem testen, ob Ihr System nicht anfällig für dieses Problem ist, indem Sie Folgendes auf Ihrem System ausführen:
cd /tmp; rm -f /tmp/echo; env 'x=() { (a)=>\' bash -c "echo date"; cat /tmp/echo
Auf einem System, das für CVE-2014-7169 anfällig ist, werden Sie feststellen, dass die folgende Datei /tmp/echo erstellt wurde und den Inhalt der Datei anzeigt.
Wenn Sie die folgende Ausgabe sehen, sollten Sie Ihre Bash mit „yum update bash“ auf die neueste Version aktualisieren (oder ein geeignetes Paketverwaltungsprogramm für Ihre Distribution verwenden)
# cd /tmp; rm -f /tmp/echo; env 'x=() { (a)=>\' bash -c "echo date"; cat /tmp/echo bash: x: line 1: syntax error near unexpected token `=' bash: x: line 1: `' bash: error importing function definition for `x' Fri Sep 26 16:15:09 PDT 2014
Wenn Ihr System nicht anfällig für CVE-2014-7169 ist, sehen Sie die folgende Ausgabe, die die /tmp/echo-Datei nicht erstellt.
# cd /tmp; rm -f /tmp/echo; env 'x=() { (a)=>\' bash -c "echo date"; cat /tmp/echo date cat: /tmp/echo: No such file or directory
Zusätzliche Informationen
- Details zu CVE-2014-6271, CVE-2014-7169 von der RedHat-Website
- RedHat (CentOS, Fedora) Bugzilla-Bericht für CVE-2014-6271
- RedHat (CentOS, Fedora) Bugzilla-Bericht für CVE-2014-7169
- Oracle-Sicherheitswarnung für CVE-2014-7169 – Für Solaris oder Oracle Enterprise Linux
- Ubuntu CVE-2014-7169
- Debian CVE-2014-7169