Schwachstelle5 Min. LesezeitAktualisiert am 23. Oktober 2026

Shellshock: Wie eine Webanfrage über Bash Befehle ausführte

Eine Lücke in Bash, der Shell von Linux und macOS, ließ Angreifer mit einer Anfrage Befehle auf Webservern ausführen. Wie sie wirkte, die Angriffe, der Fix.

Illustration: ein Ring mit dem CVSS-Wert 9,8, dazu der Titel Shellshock

Sofortmaßnahmen

  1. Aktualisiere Bash über die Updates deines Systems: Bash 4.3 braucht die Patches 025 bis 030, ältere Versionen die entsprechenden Patches.
  2. Prüfe eingebettete Geräte, etwa Geräte mit eingebautem Linux, die keine Updates mehr bekommen: Auf ihnen kann noch eine ungepatchte Bash laufen.
  3. Schalte CGI-Skripte auf Webservern ab, die du nicht mehr brauchst: Über sie gelangte eine einzige präparierte Webanfrage bis zu Bash.
Jahr
2014
CVSS-3.1-Wert
9,8 kritisch
der Websites mit bekanntem Betriebssystem laufen heute auf Linux, bei dem Bash zum System gehört
63,2 %
Shellshock-Angriffe pro Sekunde zu Beginn, allein bei Cloudflare (Anbieterdaten)
10–15
Warum der Fall auf der Liste steht
  • Reichweite erfüllt

    Bash gehört bei Linux und macOS zum Grundbestand des Betriebssystems (US-CERT), und auf Linux allein laufen heute 63,2 % aller Websites, deren Betriebssystem bekannt ist (W3Techs, 23. Oktober 2026).

  • Massenausnutzung erfüllt

    Innerhalb von vier Tagen trafen Angriffe mehr als 4.115 von Imperva geschützte Websites, und Cloudflare blockierte mehr als 1,1 Millionen Angriffe (Anbieterdaten von Imperva und Cloudflare).

  • Schaden nicht erfüllt

    Weder Schadenszahlen noch Ausfälle kritischer Dienste sind belegt; die Angriffszahlen stammen aus Sensoren der Anbieter, nicht aus Schadensmeldungen.

  • Außergewöhnliche Reaktion nicht erfüllt

    In elf Tagen erschienen sechs Bash-Patches, aber keine Maßnahme über das übliche Patchen hinaus ist belegt (Patch-Archiv von GNU Bash, US-CERT).

Wie eine Schwachstelle auf diese Liste kommt

Steckbrief
BetroffenGNU Bash, die Shell von Linux, Unix und macOS
CVECVE-2014-6271, CVE-2014-7169, CVE-2014-7186, CVE-2014-7187, CVE-2014-6277, CVE-2014-6278
CVSS-VektorCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
Schwachstellentyp (CWE)CWE-78
Behoben inPatches 025 bis 030 für Bash 4.3 (24. September bis 5. Oktober 2014) und entsprechende Patches für ältere Versionen
In der CISA-Liste ausgenutzter Schwachstellen seit28. Januar 2022
Gefunden vonEin unabhängiger Unix- und Linux-Spezialist; die Folgelücken fanden andere Forscher
Zeitleiste
123456
  1. 1Früheste belegte Meldung, im Bug-Tracker von Red Hat, noch geheim
  2. 2Veröffentlicht+9 Tage
  3. 3Patch verfügbar+9 Tage
  4. 4Der erste Fix erweist sich als unvollständig; seine Umgehung erhält eine eigene CVE-Nummer+10 Tage
  5. 5Die Angriffe erreichen in den Sensordaten von Cisco ihren Höhepunkt+11 Tage
  6. 6Sechster und letzter Bash-Patch der Reihe+20 Tage

Am 24. September 2014 wurde eine Sicherheitslücke in Bash bekannt, der Shell von Linux, Unix und macOS: dem Programm, das Befehle liest und ausführt. Über sie konnte eine einzige präparierte Webanfrage beliebige Befehle auf einem Webserver ausführen. Die Sensoren von Cisco registrierten noch am selben Tag Angriffe, und es brauchte sechs Patches in elf Tagen, um die Lücke und die danach gefundenen Schwachstellen zu schließen.

So funktionierte der Angriff

Programme geben den Programmen, die sie starten, Einstellungen in Umgebungsvariablen mit: kleinen Textstücken mit jeweils einem Namen. Bash nutzt sie für eine weitere Aufgabe: Die Shell kann eigene kleine Programme, sogenannte Funktionen, an die nächste Bash weitergeben, die sie startet. Dazu schreibt sie die Funktion in eine Variable, deren Text mit () { beginnt.

Jeder neue Bash-Prozess ging alle seine Variablen durch und machte aus jeder, die wie eine Funktion aussah, eine Funktion. Dazu schickte er den Text durch seinen normalen Befehlsleser, den Parser. Der Parser hielt jedoch nicht an der schließenden Klammer der Funktion an, sondern führte auch jeden Befehl aus, der danach stand.

Das wäre harmlos gewesen, wenn nur Bash selbst solche Variablen geschrieben hätte. Viele Programme kopieren jedoch Eingaben von außen in Variablen, bevor sie eine Shell starten. Webserver tun das für CGI-Skripte, kleine Programme, die ein Server startet, um eine Seite zu erzeugen: Der User-Agent-Header einer Anfrage, die Zeile, die normalerweise den Browser nennt, wird zur Variablen HTTP_USER_AGENT. DHCP-Clients, die Netzwerkeinstellungen abrufen, machen dasselbe mit Einstellungen, die das Netzwerk schickt, und ebenso OpenSSH, das Programm für Remote-Anmeldungen, bei Konten, die auf einen festen Befehl beschränkt sind.

  1. Angreiferschreibt einen Befehl hinter eine Funktion im Header einer Anfrage
  2. Webserverkopiert den Header in eine Variable für ein CGI-Skript
  3. Bashstartet und liest die Variable als Funktion ein
  4. Befehlwird auf dem Server ausgeführt
Eine einzige Anfrage reichte: Der Webserver gab den Header weiter, und Bash führte alles aus, was auf die Funktion folgte.

Reichweite und Angriffe

Bash gehört bei Linux und macOS zum Grundbestand des Betriebssystems, schrieb US-CERT, das Computer-Notfallteam der US-Regierung, in seiner Warnung. Auf Linux allein laufen heute laut W3Techs 63,2 % aller Websites, deren Betriebssystem bekannt ist. Allerdings ließ sich nicht jeder dieser Server angreifen: Ein Angreifer brauchte einen Weg von außen bis zu Bash, etwa über ein CGI-Skript.

Keine unabhängige Studie hat gemessen, wie viele Systeme verwundbar waren oder angegriffen wurden. Alle Angriffszahlen stammen von Sicherheitsfirmen, und jede sieht nur ihre eigenen Kunden. Deshalb lassen sich die Zahlen nicht addieren:

  • Cloudflare, das den Datenverkehr von Websites filtert, blockierte bis zum 30. September 2014 weit über 1,1 Millionen Shellshock-Angriffe. Anfangs zählte es 10 bis 15 Angriffe pro Sekunde.
  • Incapsula, ein Firewall-Dienst von Imperva, wehrte in den vier Tagen nach der Bekanntgabe über 217.089 Angriffsversuche auf über 4.115 Websites ab. Die Angriffe kamen von mehr als 890 IP-Adressen.
  • Die Sensoren von Cisco zeigten den Höhepunkt der Angriffe am 26. September 2014 und eine weitere Spitze zwei Tage später.
Shellshock-Angriffe pro Stunde im Durchschnitt, in den Daten von Incapsula
Erster Bericht, 26. September725
Nach vier Tagen, 29. September1.970

Anbieterdaten von Imperva; sie umfassen nur die Websites, die der Dienst schützt. Der erste Wert ist ungefähr, der zweite ein Mindestwert.

Die meisten dieser Angriffe waren Tests. In den Daten von Cloudflare waren etwa 83 % Erkundung: Anfragen, die nur prüfen, ob ein Server verwundbar ist. Etwa 8 % versuchten, den Server direkt zu übernehmen.

Was die Shellshock-Angriffe in den Daten von Cloudflare versuchten
Erkundung, ob ein Server verwundbar ist83 %
Direkte Versuche, den Server zu übernehmen8 %

Anbieterdaten von Cloudflare, 30. September 2014. Beide Anteile sind ungefähr.

Sechs Patches in elf Tagen

Das Bash-Projekt veröffentlichte seinen ersten Patch noch am Tag der Bekanntgabe. Er war unvollständig. Am 25. September erhielt eine zweite Schwachstelle eine eigene Nummer, CVE-2014-7169, weil Bash nach bestimmten fehlerhaften Funktionsdefinitionen immer noch nachfolgenden Text ausführte. Danach fanden Forscher weitere Schwachstellen im Parser, und die Warnung von US-CERT wuchs bis zum 30. September auf sechs CVE-Nummern.

PatchDatumWas er behob
bash43-02524. September 2014Die ursprüngliche Lücke, CVE-2014-6271
bash43-02626. September 2014Die Umgehung des ersten Patches, CVE-2014-7169
bash43-02727. September 2014Eine neue Art, Funktionen weiterzugeben, die die ganze Klasse von Fehlern schließt
bash43-0281. Oktober 2014Zwei Speicherfehler im Parser, CVE-2014-7186 und CVE-2014-7187
bash43-0292. Oktober 2014Ein Parser-Fehler, der zu CVE-2014-6277 passt
bash43-0305. Oktober 2014Ein Parser-Fehler, der zu CVE-2014-6278 passt

Der dauerhafte Fix war Patch 027. Seitdem gibt Bash Funktionen nur noch unter besonderen Variablennamen weiter (BASH_FUNC_name%%), sodass eine gewöhnliche Variable, etwa eine aus einer Webanfrage, nie als Code behandelt wird. Damit waren die späteren Parser-Fehler über Variablen nicht mehr erreichbar. Ältere Bash-Versionen erhielten entsprechende Patches, und die Linux-Distributionen lieferten sie als Updates aus. Red Hat etwa verfolgte die Meldung seit dem 15. September 2014 unter Embargo, also geheim, bis ein Fix bereitstand.

Die Warnung von US-CERT gab der Lücke die höchstmögliche Bewertung für die Auswirkungen, 10. Heute bewertet die NVD, die US-amerikanische National Vulnerability Database, die ursprüngliche Lücke mit 9,8 von 10 auf Version 3.1 der CVSS-Skala; auf der älteren Version 2 erreichen alle sechs Shellshock-CVEs den Wert 10. Die US-Cyberbehörde CISA nahm die ursprüngliche Lücke und die erste Umgehung am 28. Januar 2022 in ihre Liste ausgenutzter Schwachstellen auf, eine der späteren Parser-Lücken, CVE-2014-6278, am 2. Oktober 2025.

Quellen

  1. oss-security: der erste öffentliche Sicherheitshinweis zu CVE-2014-6271 openwall.com
  2. GNU-Projekt: die offiziellen Patches für Bash 4.3, mit Datum ftp.gnu.org
  3. US-CERT-Warnung TA14-268A zu Shellshock cisa.gov
  4. Red Hat Bugzilla: der Eintrag zu CVE-2014-6271, unter Embargo geführt bugzilla.redhat.com
  5. NVD: CVE-2014-6271 nvd.nist.gov
  6. Cisco Talos: Shellshock-Angriffe im Netz (Anbieterdaten) blogs.cisco.com
  7. Cloudflare: Shellshock im Detail (Anbieterdaten) blog.cloudflare.com
  8. Imperva: die Folgen von Shellshock (Anbieterdaten) imperva.com
  9. W3Techs: Nutzungsstatistik von Linux w3techs.com