#1 26. September 2014 Zuletzt bearbeitet: 15. April 2017 In der Linux-Shell Bash wurde eine große Sicherheitslücke entdeckt. In Umgebungsvariablen lässt sich Code einfügen, den die Shell beim Starten ungeprüft ausführt. Das eröffnet zahlreiche Angriffsvektoren, am kritischsten ist die Lücke für Webskripte, die mittels CGI ausgeführt werden. Bash ermöglicht es, mittels Umgebungsvariablen Funktionen zu definieren. Der Name der Umgebungsvariable dient dabei als Funktionsname, der Inhalt wird ausgeführt. Beispiel: Code: x="() { echo Moin; }" bash -c "x" So wird eine Funktion x definiert, die die Zeichenkette "Moin" ausgibt. Das Problem: Wenn Bash eine solche Funktionsvariable entdeckt, parst es die komplette Variable und führt Code aus, der sich direkt hinter dem Funktionsaufruf befindet. Ob die Shell angreifbar ist lässt sich wie folgt testen: Code: test="() { echo Moin Moin; }; echo gehackt" bash -c "" Bei einer verwundbaren Bash-Version wird hier der String "gehackt" ausgegeben obwohl die Bash-Shell eigentlich überhaupt nichts ausführen soll. Besonders kritisch sind hierbei CGI-Skripte auf Webservern. Denn hier werden beispielsweise Parameter oder Pfade der Webanwendung mittels Umgebungsvariablen übergeben. CGI-Skripte, die in Bash geschrieben sind, lassen sich damit direkt angreifen. Aber auch in anderen Programmiersprachen gibt es kritische Befehle: In PHP system() und exec(), in C die Befehle system() und popen() und in Python os.system() und os.popen(). Ein Update ist für alle Nutzer und Administratoren von Linux und anderen Unix-Systemen mit Bash dringend nötig. Für die aktuelle Bash-Version 4.3 steht der Patch 025 bereit, für Bash 4.2 der Patch 048. Betroffen ist auch MacOS X, welches ebenfalls Bash als Standardshell verwendet. Eine Anleitung um die MacOS Bash zu ersetzen bzw neu zu compilieren findet ihr hier auf englisch: security - How do I recompile Bash to avoid Shellshock (the remote exploit CVE-2014-6271 and CVE-2014-7169)? - Ask Different Update: Hier eine Anleitung wie man auf Debian Squeeze die Lücke behebt: Debian Squeeze Shellshock fix - RR:Board Quelle: Linux-Shell: Bash-Sicherheitslücke ermöglicht Codeausführung auf Servern - Golem.de oss-sec: Re: CVE-2014-6271: remote code execution through bash + Multi-Zitat Zitieren
#2 26. September 2014 AW: Artikel: Linux: Bash-Sicherheitslücke ermöglicht Codeausführung Krass wie lang der Bug einfach unentdeckt blieb. + Multi-Zitat Zitieren
#3 28. September 2014 Das weiß man nie so genau, ob der wirklich unentdeckt war... es gab und gibt unzählige Bugs die teilweise Jahrelang bestehen und definitiv genutzt werden. Ebenso wenig ist bekannt wie viele Daten im Netz gesammelt wurden (zB durch Hacker oder Geheimdienste). Wäre ja auch nicht gerade optimal für das Vertrauen in Internetdienstleistungen. + Multi-Zitat Zitieren
#4 29. September 2014 Hat jemand schon Erfahrungen gemacht wie sich das Ganze real auswirkt? So wie ich das verstanden lässt sich das Exploit auch dazu nutzen um Befehle mit Root Rechte auszuführen? Nehmen wir an wir knacken ein Shared Hosting Server. Der Webuser läuft zwar mit eingeschränkter Rechte hat aber i.d.R bei vielen Hostern Bash Zugriff. Kann ich mit diesem simplen Webuser einfach Befehle mit root Rechten ausführen? Oder habe ich da was falsch verstanden? Ein direkter Remote Angriff kommt doch nur mit Webscripts die auf BASH setzen in Frage?? (z.B CGI Scripts) Wäre das Szenario mit dem Shared Hosting den techisch möglich? Vorausgesetzt Bash ist installiert und wir haben schon File Zugriff + Shellzugriff. + Multi-Zitat Zitieren
#5 30. September 2014 Wenn es eine Lücke in der VM gibt bzw ein Exploit könnte wäre natürlich ein hack des Hostsystems möglich. Die Befehle werden immer als der Nutzer ausgeführt der den Laufenden Elternprozess gestartet hat. Also wenn du über den Webdienst der vom Webuser ausgeführt wird einen exec(), system() oder ähnliches Ausführst mit diesem Bug sollte der keine root-Rechte haben, zumindest soweit ich das entnehmen konnte. Dafür wäre dann weiter ein Root- bzw Kernel-Exploit nötig. + Multi-Zitat Zitieren