CVE-2021-3129
Laravel Ignition File Upload Vulnerability
Beschreibung
CVE-2021-3129 ist eine kritische Schwachstelle in Ignition (vor Version 2.5.2), einer Fehlerbehandlungskomponente, die in Laravel und anderen PHP-Produkten eingesetzt wird. Die Schwachstelle ermöglicht nicht authentifizierten Angreifern die Ausführung beliebigen Codes über eine unsichere Verwendung der PHP-Funktionen file_get_contents() und file_put_contents(). Voraussetzung für die Ausnutzung ist, dass die Anwendung im Debug-Modus betrieben wird (Laravel vor Version 8.4.2). Mit einem CVSS-Score von 9.8 (Kritisch) und einem EPSS-Score von 94,3 % (99,9. Perzentil) gehört CVE-2021-3129 zu den am häufigsten ausgenutzten Schwachstellen. Die CISA hat die aktive Ausnutzung bestätigt, und es besteht ein nachgewiesener Zusammenhang mit Ransomware-Angriffen.
KEV-Informationen
CVSS-Score
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:HIm Rechner öffnenBetroffene Produkte
| Hersteller | Produkt | Version |
|---|---|---|
| facade | ignition | < 2.5.2 |
Mehrere CVSS-Bewertungen
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
Referenzen
- http://packetstormsecurity.com/files/162094/Ignition-2.5.1-Remote-Code-Execution.html(Exploit, Third Party Advisory, VDB Entry)
- http://packetstormsecurity.com/files/165999/Ignition-Remote-Code-Execution.html(Exploit, Third Party Advisory, VDB Entry)
- https://github.com/facade/ignition/pull/334(Patch, Third Party Advisory)
- https://www.ambionics.io/blog/laravel-debug-rce(Exploit, Third Party Advisory)
- https://www.cisa.gov/known-exploited-vulnerabilities-catalog?field_cve=CVE-2021-3129(US Government Resource)
Schwachstellentyp
Für CVE-2021-3129 ist kein spezifischer CWE-Typ in der NVD-Datenbank zugeordnet. Die zugrunde liegende Schwäche liegt in einer unsicheren Verwendung von Dateisystemfunktionen (file_get_contents() und file_put_contents()) in der Ignition-Fehlerbehandlungskomponente. Wenn der Debug-Modus aktiviert ist, können Angreifer diese Funktionen missbrauchen, um beliebige Dateien zu lesen und zu schreiben und letztlich Remote Code Execution zu erreichen.
Auswirkungsanalyse
CVE-2021-3129 hat mit einem CVSS-Score von 9.8 (Kritisch, CVSS v3.1) die höchste Gefährdungsstufe. Angriffsvektor (Netzwerk): Die Schwachstelle ist aus der Ferne über das Internet ausnutzbar, da Ignition als Teil der Webanwendung über HTTP erreichbar ist. Angriffskomplexität (Niedrig): Die Ausnutzung erfordert keine besonderen Bedingungen – öffentlich verfügbare Exploit-Tools machen den Angriff trivial. Keine Authentifizierung erforderlich: Ein Angreifer benötigt keinerlei Zugangsdaten, um die Schwachstelle auszunutzen. Keine Benutzerinteraktion erforderlich: Der Angriff kann vollständig automatisiert erfolgen. Vertraulichkeit, Integrität und Verfügbarkeit (jeweils Hoch): Bei erfolgreicher Ausnutzung erhält der Angreifer vollständige Kontrolle über den Webserver – er kann Quellcode und Datenbankinhalte auslesen, Dateien manipulieren und den Dienst lahmlegen. Ransomware-Risiko: Die CISA bestätigt einen nachgewiesenen Zusammenhang mit Ransomware-Kampagnen, was das Bedrohungspotenzial erheblich erhöht.
Exploit-Reifegrad
Öffentlicher Exploit-Code ist verfügbar für CVE-2021-3129 über mehrere Quellen, darunter Packet Storm Security (Ignition 2.5.1 RCE), Packet Storm Security (Ignition RCE) sowie eine detaillierte technische Analyse von Ambionics. Die CISA hat CVE-2021-3129 in den KEV-Katalog aufgenommen und damit die aktive Ausnutzung in freier Wildbahn bestätigt – zudem besteht ein nachgewiesener Zusammenhang mit Ransomware-Angriffen. Der EPSS-Score von 94,3 % (99,9. Perzentil) bestätigt eine nahezu sichere Ausnutzungsaktivität und zeigt, dass diese Schwachstelle zu den am aktivsten ausgenutzten Laravel-Schwachstellen gehört.
Behebung
- Ignition auf Version 2.5.2 oder höher aktualisieren: Das Update behebt die unsichere Verwendung der Dateisystemfunktionen. Der entsprechende Patch ist im GitHub Pull Request #334 dokumentiert. Bei Verwendung von Laravel sollte gleichzeitig auf Version 8.4.2 oder höher aktualisiert werden.
- Debug-Modus in Produktionsumgebungen deaktivieren: Die Schwachstelle ist nur ausnutzbar, wenn der Debug-Modus aktiviert ist. In der Datei .env muss APP_DEBUG=false gesetzt und die Konfiguration APP_ENV=production verwendet werden. Dies ist eine grundlegende Sicherheitsmaßnahme für jede Laravel-Produktionsumgebung.
- Zugriff auf Ignition-Fehlerseiten einschränken: Falls der Debug-Modus temporär benötigt wird, den Zugriff auf die Ignition-Endpunkte über Webserver-Konfiguration (z. B. Nginx/Apache) oder WAF-Regeln auf vertrauenswürdige IP-Adressen beschränken.
- Serverprotokolle auf Kompromittierungsindikatoren prüfen: Webserver-Logs auf verdächtige Anfragen an Ignition-Endpunkte durchsuchen, insbesondere Anfragen, die file_get_contents oder file_put_contents auslösen. Dateisystem auf unautorisierte Änderungen prüfen.
- Langfristige Absicherung: Sicherstellen, dass Deployment-Pipelines den Debug-Modus automatisch deaktivieren. PHP-Funktionen wie file_get_contents und file_put_contents in der php.ini über disable_functions einschränken, sofern nicht benötigt. Regelmäßige Dependency-Updates über Composer durchführen.
Technische Details
CVE-2021-3129 betrifft die Ignition-Fehlerbehandlungskomponente (vor Version 2.5.2), die in Laravel-Anwendungen standardmäßig eingebunden ist und detaillierte Fehlerseiten im Debug-Modus anzeigt. Schwachstellenmechanismus: Ignition stellt im Debug-Modus verschiedene "Solutions" bereit, die Entwicklern bei der Fehlerbehebung helfen sollen. Einige dieser Solutions nutzen die PHP-Funktionen file_get_contents() und file_put_contents() mit unzureichend validierten Parametern. Ein Angreifer kann über speziell präparierte HTTP-Anfragen an die Ignition-Endpunkte beliebige Dateien lesen und schreiben, was zur Einschleusung von PHP-Code und letztlich zur Remote Code Execution führt. Angriffsvektor: Gemäß dem CVSS-Vektor (CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H) erfolgt der Angriff ohne jegliche Authentifizierung über das Netzwerk mit niedriger Komplexität. Die Voraussetzung ist, dass die Laravel-Anwendung im Debug-Modus (APP_DEBUG=true) betrieben wird – eine Fehlkonfiguration, die in Produktionsumgebungen leider immer noch häufig anzutreffen ist. Exploitchain: Die technische Analyse von Ambionics zeigt, dass der Angriff über eine PHAR-Deserialisierung in Kombination mit dem Log-Clearing-Mechanismus von Ignition erfolgt, was eine zuverlässige Ausnutzung ermöglicht.
Häufig gestellte Fragen
Wird CVE-2021-3129 aktiv ausgenutzt?
Ja, CVE-2021-3129 wird nachweislich aktiv ausgenutzt. Die CISA hat diese Schwachstelle in den KEV-Katalog aufgenommen und die aktive Ausnutzung in freier Wildbahn bestätigt. Zudem besteht ein nachgewiesener Zusammenhang mit Ransomware-Angriffen. Der EPSS-Score von 94,3 % (99,9. Perzentil) zeigt eine nahezu sichere Ausnutzungsaktivität.
Welche Produkte sind von CVE-2021-3129 betroffen?
Betroffen ist die Ignition-Fehlerbehandlungskomponente vor Version 2.5.2, die standardmäßig in Laravel-Anwendungen eingebunden ist. Alle Laravel-Versionen vor 8.4.2, die Ignition im Debug-Modus verwenden, sind potenziell angreifbar. Auch andere PHP-Produkte, die Ignition als Abhängigkeit einbinden, können betroffen sein.
Wie behebe ich CVE-2021-3129?
Die wichtigste Maßnahme ist das Update von Ignition auf Version 2.5.2 oder höher und von Laravel auf Version 8.4.2 oder höher. Zusätzlich muss der Debug-Modus in Produktionsumgebungen zwingend deaktiviert werden (APP_DEBUG=false). Serverprotokolle sollten auf verdächtige Anfragen an Ignition-Endpunkte geprüft werden. Weitere Details finden Sie im Abschnitt Behebung.
Wie schwerwiegend ist CVE-2021-3129?
CVE-2021-3129 ist mit einem CVSS-Score von 9.8 als kritisch eingestuft (CVSS v3.1). Die Schwachstelle erlaubt nicht authentifizierte Remote Code Execution auf Laravel-Anwendungen im Debug-Modus. In Kombination mit dem bestätigten Ransomware-Zusammenhang und dem EPSS-Score im 99,9. Perzentil gehört diese Schwachstelle zu den gefährlichsten Laravel-Sicherheitslücken.
Hilfe beim Schwachstellenmanagement?
Unsere Sicherheitsexperten helfen Ihnen bei der Priorisierung und Behebung von Schwachstellen.