CVE-2012-0391

CRITICAL(9.8)KEVWahrscheinlich ausgenutzt

Apache Struts 2 Improper Input Validation Vulnerability

Beschreibung

CVE-2012-0391 ist eine kritische Remote-Code-Execution-Schwachstelle in Apache Struts 2 vor Version 2.2.3.1, verursacht durch unsachgemäße Eingabevalidierung (CWE-20) kombiniert mit Code-Injection (CWE-94) in der ExceptionDelegator-Komponente. Die Schwachstelle ermöglicht es einem nicht authentifizierten Remote-Angreifer, beliebigen Code auf dem Anwendungsserver auszuführen, indem speziell gestaltete HTTP-Anfragen gesendet werden, die OGNL-Expression-Evaluation (Object-Graph Navigation Language) in der Fehlerbehandlung ausnutzen. Mit einem CVSS-3.1-Score von 9.8 erfordert diese Schwachstelle keine Authentifizierung, keine Benutzerinteraktion und ist über das Netzwerk mit geringer Komplexität ausnutzbar. CISA hat CVE-2012-0391 am 21. Januar 2022 in den KEV-Katalog aufgenommen, mit einer Behebungsfrist bis zum 21. Juli 2022. Der EPSS-Score von 0,88319 (99,49. Perzentile) bestätigt eine extrem hohe Ausnutzungswahrscheinlichkeit.

KEV-Informationen

Hersteller
Apache
Produkt
Struts 2
Hinzugefügt am
21. Januar 2022
Fälligkeitsdatum
21. Juli 2022
Erforderliche Maßnahme
Apply updates per vendor instructions.

CVSS-Score

Vektorstring
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:HIm Rechner öffnen
Angriffsvektor
NETWORK
Angriffskomplexität
LOW
Erforderliche Privilegien
NONE
Benutzerinteraktion
NONE
Scope
UNCHANGED
Vertraulichkeitsauswirkung
HIGH
Integritätsauswirkung
HIGH
Verfügbarkeitsauswirkung
HIGH
Ausnutzbarkeitsscore
3.9
Auswirkungsscore
5.9

CWEs

Betroffene Produkte

HerstellerProduktVersion
apachestruts< 2.2.3.1

Mehrere CVSS-Bewertungen

Quelle: [email protected](Primary)
9.8
CRITICAL

CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H

Quelle: 134c704f-9b21-4f2e-91b3-4a467353bcc0(Secondary)
9.8
CRITICAL

CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H

Referenzen

Schwachstellentyp

CWE-20 / CWE-94: Unsachgemäße Eingabevalidierung und Code-Injection

CVE-2012-0391 umfasst zwei komplementäre Schwachstellentypen. CWE-20 (Unsachgemäße Eingabevalidierung) beschreibt das Versäumnis, Benutzereingaben vor der Verarbeitung ordnungsgemäß zu validieren, während CWE-94 (Code-Injection) die Möglichkeit beschreibt, beliebigen Code über die Anwendung einzuschleusen und auszuführen. Zusammen erzeugen diese Schwächen eine verheerende Angriffskette, bei der ungeprüfte Eingaben eine Expression-Evaluation-Engine erreichen, die vom Angreifer bereitgestellten Code ausführt.

In Apache Struts 2 verwendet das Framework OGNL (Object-Graph Navigation Language) als Ausdruckssprache für Value-Stack-Operationen, Typkonvertierung und Datenbindung. Die ExceptionDelegator-Komponente behandelt Ausnahmen, die während der Anfrageverarbeitung auftreten, und in anfälligen Versionen werden Fehlermeldungen, die Benutzereingaben enthalten, als OGNL-Ausdrücke ausgewertet. Ein Angreifer erstellt HTTP-Anfrageparameter, die Validierungsausnahmen auslösen, wobei die Parameterwerte bösartige OGNL-Ausdrücke enthalten. Wenn der ExceptionDelegator die Ausnahme verarbeitet, wertet er die Fehlermeldung als OGNL-Ausdruck aus und führt den Code des Angreifers im Kontext des Anwendungsservers aus. Mehr über Unsachgemäße Eingabevalidierung (CWE-20) erfahren

Auswirkungsanalyse

CVE-2012-0391 hat einen CVSS-3.1-Basiswert von 9.8 (CRITICAL), der die verheerenden Auswirkungen nicht authentifizierter Remote-Code-Execution auf einem weit verbreiteten Web-Framework widerspiegelt.

Vertraulichkeit (Hoch): Erfolgreiche OGNL-Injection ermöglicht dem Angreifer, beliebigen Java-Code und Betriebssystembefehle auf dem Anwendungsserver auszuführen. Dies gewährt vollen Zugriff auf Anwendungsquellcode, Datenbankverbindungsstrings, API-Anmeldedaten, Benutzerdaten, Sitzungstoken und alle vom Anwendungsserverprozess lesbaren Dateien. In Unternehmensumgebungen verbinden sich Struts-Anwendungen oft mit Backend-Datenbanken, die sensible Geschäftsdaten, Kundendatensätze und Finanzinformationen enthalten.

Integrität (Hoch): Code-Ausführung auf dem Anwendungsserver ermöglicht dem Angreifer, Anwendungslogik zu modifizieren, Datenbankeinträge zu verändern, bösartige Inhalte in Webseiten einzuschleusen, Web-Shells für persistenten Zugriff einzusetzen und Serverkonfigurationen zu ändern. Der Angreifer kann Backdoors installieren, Administratorkonten erstellen und Persistenzmechanismen etablieren.

Verfügbarkeit (Hoch): Der Angreifer kann den Anwendungsserver beenden, Systemressourcen verbrauchen, Anwendungsdaten beschädigen oder Ransomware einsetzen. OGNL-Injection-Angriffe wurden in destruktiven Kampagnen gegen Enterprise-Anwendungen eingesetzt, die teilweise zu vollständiger Infrastrukturkompromittierung und längeren Ausfällen führten.

Scope (Unverändert): Obwohl der Scope technisch unverändert ist, bietet Code-Ausführung auf einem Struts-Anwendungsserver typischerweise einen Brückenkopf für laterale Bewegung zu Datenbankservern, internen APIs und anderen Backend-Systemen. Der EPSS-Score von 0,88319 (99,49. Perzentile) bestätigt, dass diese Schwachstelle zu den am stärksten ausgenutzten CVEs gehört.

Exploit-Reifegrad

Aktive Ausnutzung: CVE-2012-0391 wird aktiv ausgenutzt und ist seit seiner Offenlegung ein Ziel für Bedrohungsakteure. CISA hat die Schwachstelle am 21. Januar 2022 in den KEV-Katalog aufgenommen und bestätigt damit die fortgesetzte Ausnutzung. Struts 2 OGNL-Injection-Schwachstellen waren an einigen der bekanntesten Datenverletzungen der Geschichte beteiligt, und CVE-2012-0391 ist Teil dieses Angriffsmusters.

Ransomware-Bezug: Der CISA-KEV-Katalog ordnet CVE-2012-0391 nicht direkt Ransomware-Kampagnen zu. Remote-Code-Execution auf Enterprise-Anwendungsservern ist jedoch ein hochrangiger initialer Zugriffsvektor für Ransomware-Betreiber.

Öffentliche Exploits: Öffentlicher Exploit-Code ist aus mehreren Quellen verfügbar, darunter Archive auf Neohapsis. Das offizielle Apache Struts Security Bulletin S2-008 dokumentiert die Schwachstelle. Metasploit und andere Exploitation-Frameworks enthalten Module für diese Schwachstelle.

EPSS-Kontext: Der EPSS-Score von 0,88319 (99,49. Perzentile) platziert diese Schwachstelle in den obersten 0,5% aller CVEs hinsichtlich der Ausnutzungswahrscheinlichkeit. Dieser außergewöhnlich hohe Score spiegelt die Kombination aus öffentlicher Exploit-Verfügbarkeit, weit verbreitetem Struts-2-Einsatz und den verheerenden Auswirkungen erfolgreicher Ausnutzung wider.

KEV-Frist: Die CISA-Behebungsfrist war der 21. Juli 2022. Organisationen, die Struts 2 Versionen vor 2.2.3.1 betreiben, müssen umgehend aktualisieren.

Behebung

  1. Apache Struts 2 auf Version 2.2.3.1 oder höher aktualisieren. Die ExceptionDelegator-OGNL-Injection-Schwachstelle ist in Struts 2.2.3.1 behoben, wie im Security Bulletin S2-008 dokumentiert. Wenden Sie dieses Update an, um die Schwachstelle zu eliminieren. Idealerweise aktualisieren Sie auf die neueste Struts-2-Version, um von allen nachfolgenden Sicherheitsfixes zu profitieren.

  2. Alle Struts 2 Security Bulletins umfassend anwenden. CVE-2012-0391 ist eine von vielen OGNL-Injection-Schwachstellen in der Geschichte von Struts 2. Überprüfen Sie alle Apache Struts Security Bulletins (S2-001 bis zum neuesten) und stellen Sie sicher, dass Ihre Version alle bekannten Schwachstellen adressiert.

  3. Dynamic Method Invocation und OGNL-Evaluation wo möglich deaktivieren. Konfigurieren Sie Struts 2, um die OGNL-Expression-Evaluation einzuschränken. Setzen Sie struts.enable.DynamicMethodInvocation auf false und implementieren Sie strenge OGNL-Expression-Allowlists.

  4. Web Application Firewall mit OGNL-Injection-Erkennung einsetzen. Konfigurieren Sie WAF-Regeln zur Erkennung und Blockierung von HTTP-Anfragen, die OGNL-Injection-Muster wie %{, ${, #, @ und gängige OGNL-Methodenaufrufe enthalten. Dies bietet Defense-in-Depth, während Patches angewendet werden.

  5. Netzwerksegmentierung für Anwendungsserver implementieren. Isolieren Sie Struts-Anwendungsserver in dedizierten Netzwerksegmenten mit strengen Zugriffskontrollen. Beschränken Sie die ausgehende Konnektivität von Anwendungsservern, um Datenexfiltration und Command-and-Control-Kommunikation im Falle einer Kompromittierung zu verhindern.

  6. Gründliche Sicherheitsüberprüfung aller Struts-Deployments durchführen. Inventarisieren Sie alle Apache Struts 2-Installationen in der Organisation, bestimmen Sie deren Versionen und priorisieren Sie das Patching basierend auf Exposition und Kritikalität.

Technische Details

CVE-2012-0391 ist eine OGNL-Injection-Schwachstelle in der ExceptionDelegator-Komponente von Apache Struts 2 vor Version 2.2.3.1. OGNL (Object-Graph Navigation Language) ist eine leistungsstarke Ausdruckssprache, die in Struts 2 durchgehend für Datenbindung, Typkonvertierung und Value-Stack-Operationen verwendet wird. Die Schwachstelle besteht darin, dass benutzergesteuerte Eingaben, die Validierungsausnahmen auslösen, anschließend als OGNL-Ausdrücke während der Ausnahmebehandlung ausgewertet werden.

Die Ausnutzungstechnik umfasst das Senden von HTTP-Anfragen mit sorgfältig gestalteten Parameterwerten, die eine Typkonvertierungs- oder Validierungsausnahme auslösen sollen. Die vom ExceptionDelegator generierte Fehlermeldung enthält den ursprünglichen benutzerbereitgestellten Wert, und diese Fehlermeldung wird durch Struts 2s Tag-Bibliothek verarbeitet, die in den Nachrichtentext eingebettete OGNL-Ausdrücke auswertet.

Der CVSS-3.1-Vektor (AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H) spiegelt wider, dass die Ausnutzung netzwerkbasiert ist, keine Authentifizierung erfordert und eine vollständige Systemkompromittierung erreicht. Die OGNL-Expression-Evaluation-Engine in Struts 2 hat Zugriff auf die Java-Laufzeitumgebung, was Ausdrücke wie #rt = @java.lang.Runtime@getRuntime(), #rt.exec('command') zur Ausführung beliebiger Betriebssystembefehle ermöglicht.

Die Grundursache ist das Versäumnis, Benutzereingaben zu bereinigen, bevor sie die OGNL-Expression-Evaluation-Pipeline erreichen. Der ExceptionDelegator verarbeitet Ausnahme-Nachrichten durch denselben Expression-Evaluation-Mechanismus, der für legitimates Template-Rendering verwendet wird, ohne zwischen vertrauenswürdigen Template-Ausdrücken und nicht vertrauenswürdigen Benutzereingaben zu unterscheiden.

Häufig gestellte Fragen

Was ist CVE-2012-0391?

CVE-2012-0391 ist eine kritische Remote-Code-Execution-Schwachstelle in Apache Struts 2 vor Version 2.2.3.1. Sie nutzt OGNL-Expression-Injection (Object-Graph Navigation Language) über die ExceptionDelegator-Komponente aus und ermöglicht einem nicht authentifizierten Remote-Angreifer, beliebigen Java-Code und Betriebssystembefehle auf dem Anwendungsserver auszuführen, indem speziell gestaltete HTTP-Anfragen gesendet werden, die Validierungsausnahmen mit eingebetteten OGNL-Payloads auslösen.

Welche Anwendungen sind von CVE-2012-0391 betroffen?

Jede Webanwendung, die auf Apache Struts 2 vor Version 2.2.3.1 basiert, ist potenziell betroffen. Struts 2 war eines der am weitesten verbreiteten Java-Web-Frameworks in Unternehmensumgebungen und betrieb Bankportale, Regierungsdienste, E-Commerce-Plattformen und interne Geschäftsanwendungen. Die ExceptionDelegator-Komponente ist Teil des Kern-Frameworks und standardmäßig aktiviert.

Wie behebe ich CVE-2012-0391?

Aktualisieren Sie Apache Struts 2 auf Version 2.2.3.1 oder höher, die die OGNL-Injection in der ExceptionDelegator-Komponente behebt. Überprüfen und wenden Sie alle nachfolgenden Struts 2 Security Bulletins an, um die gesamte Bandbreite von OGNL-Injection-Schwachstellen zu adressieren. Setzen Sie WAF-Regeln zur Erkennung von OGNL-Injection-Mustern ein.

Wie schwerwiegend ist CVE-2012-0391?

CVE-2012-0391 ist mit einem CVSS-3.1-Score von 9.8 als KRITISCH eingestuft. Der EPSS-Score von 0,88319 (99,49. Perzentile) platziert sie unter den am aktivsten ausgenutzten Schwachstellen. Struts 2 OGNL-Injection-Schwachstellen waren für einige der verheerendsten Datenverletzungen der Computergeschichte verantwortlich. CISA führt CVE-2012-0391 im Known Exploited Vulnerabilities Katalog.

CVSS-Score

9.8
CRITICAL(9.8)

EPSS-Score

EPSS-Score75.07%
EPSS-Perzentil99.5%

Daten

Veröffentlicht8. Januar 2012
Zuletzt geändert16. Juni 2026
StatusAnalyzed
CVSS-Versionv3.1

Hilfe beim Schwachstellenmanagement?

Unsere Sicherheitsexperten helfen Ihnen bei der Priorisierung und Behebung von Schwachstellen.