CVE-2017-9791

CRITICAL(9.8)KEVWahrscheinlich ausgenutzt

Apache Struts 1 Improper Input Validation Vulnerability

Beschreibung

CVE-2017-9791 ist eine kritische Remote-Code-Execution-Schwachstelle im Struts-1-Plugin von Apache Struts mit einem CVSS-3.1-Score von 9.8 (CRITICAL). Die unter CWE-20 (Improper Input Validation) klassifizierte Schwachstelle ermöglicht es einem nicht authentifizierten Angreifer, über manipulierte Feldwerte in ActionMessage-Objekten beliebigen Code auf dem Server auszuführen. Betroffen sind Apache-Struts-Versionen 2.3.1 bis 2.3.32 mit aktiviertem Struts-1-Plugin. Die Schwachstelle wurde am 10. Februar 2022 in den CISA-KEV-Katalog aufgenommen, mit einer Behebungsfrist bis zum 10. August 2022. Der EPSS-Score von 94,24 % (99,93. Perzentile) belegt eine extrem hohe Ausnutzungswahrscheinlichkeit.

KEV-Informationen

Hersteller
Apache
Produkt
Struts 1
Hinzugefügt am
10. Februar 2022
Fälligkeitsdatum
10. August 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
apachestruts2.3.1; 2.3.1.1; 2.3.1.2; 2.3.3; 2.3.4; 2.3.4.1; 2.3.7; 2.3.8; 2.3.12; 2.3.14; 2.3.14.1; 2.3.14.2; 2.3.14.3; 2.3.15; 2.3.15.1; 2.3.15.2; 2.3.15.3; 2.3.16; 2.3.16.1; 2.3.16.2; 2.3.16.3; 2.3.20; 2.3.20.1; 2.3.20.3; 2.3.24; 2.3.24.1; 2.3.24.3; 2.3.28; 2.3.28.1; 2.3.29; 2.3.30; 2.3.31; 2.3.32

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: Improper Input Validation

CVE-2017-9791 wird unter CWE-20 — Unsachgemäße Eingabevalidierung — klassifiziert. Diese Schwachstellenklasse beschreibt Situationen, in denen eine Anwendung Benutzereingaben entgegennimmt, ohne diese auf erwartete Formate, Typen oder Wertebereiche zu überprüfen.

Im konkreten Fall des Struts-1-Plugins werden vom Benutzer bereitgestellte Feldwerte ohne ausreichende Bereinigung an ActionMessage-Objekte übergeben. Das Struts-2-Framework wertet diese Werte anschließend als OGNL-Ausdrücke (Object-Graph Navigation Language) aus. Ein Angreifer kann dadurch manipulierte OGNL-Ausdrücke einschleusen, die vom Server interpretiert werden und Zugriff auf Java-Runtime-Methoden ermöglichen — was letztlich zur Ausführung beliebiger Systembefehle führt.

Auswirkungsanalyse

CVE-2017-9791 erreicht einen CVSS-3.1-Score von 9.8 (CRITICAL) und ermöglicht vollständige Remote Code Execution ohne Authentifizierung.

Vertraulichkeit (High): Durch die Ausführung beliebiger Befehle erhält ein Angreifer Zugriff auf sämtliche Daten des Servers — einschließlich Anwendungsdaten, Datenbank-Credentials, Konfigurationsdateien und personenbezogener Daten. In Unternehmensumgebungen mit Struts-basierten Anwendungen können Finanzdaten, Kundendaten und geschäftskritische Informationen betroffen sein.

Integrität (High): Ein Angreifer kann Anwendungslogik manipulieren, Datenbankeinträge ändern, Backdoors installieren oder geschäftskritische Transaktionen verfälschen. Die Kontrolle entspricht den Berechtigungen des Anwendungs-Dienstkontos.

Verfügbarkeit (High): Beliebige Codeausführung ermöglicht das Herunterfahren des Servers, Ressourcenerschöpfung, den Einsatz von Kryptominern oder die vollständige Außerbetriebnahme des Dienstes.

Scope: Der Scope ist Unchanged (U), die Auswirkungen bleiben zunächst auf den betroffenen Anwendungsserver beschränkt — laterale Bewegung nach erfolgter Kompromittierung ist jedoch üblich.

Mit einem EPSS-Score von 94,24 % (99,93. Perzentile) gehört diese Schwachstelle zu den am häufigsten ausgenutzten überhaupt.

Exploit-Reifegrad

Exploit-Status: CVE-2017-9791 wird aktiv ausgenutzt und ist im CISA Known Exploited Vulnerabilities (KEV) Katalog gelistet. Mehrere öffentliche Exploits sind auf Exploit-DB verfügbar (IDs 42324 und 44643), was die Ausnutzungsschwelle erheblich senkt.

Ransomware-Bezug: Laut CISA-KEV besteht kein bekannter direkter Ransomware-Bezug für diese spezifische CVE. Apache-Struts-Schwachstellen wurden jedoch historisch von Cyberkriminellen und APT-Gruppen gleichermaßen für initiale Zugänge genutzt.

Angriffskontext: Die Schwachstelle ist im Apache-Struts-Sicherheitsbulletin S2-048 dokumentiert. Sie betrifft Anwendungen, die das Struts-1-Plugin innerhalb des Struts-2-Frameworks verwenden — eine verbreitete Konfiguration in Legacy-Enterprise-Java-Anwendungen. Der Angriff erfordert lediglich Netzwerkzugriff auf die Anwendung.

KEV-Frist: Die CISA-Behebungsfrist war der 10. August 2022.

EPSS-Kontext: Der EPSS-Score von 94,24 % (99,93. Perzentile) bestätigt eine extrem hohe reale Ausnutzungswahrscheinlichkeit.

Behebung

  1. Apache Struts aktualisieren. Wenden Sie umgehend die im offiziellen S2-048-Sicherheitshinweis beschriebenen Patches an. Aktualisieren Sie auf eine Struts-Version jenseits der 2.3.x-Serie, die den Fix enthält.

  2. Struts-1-Plugin entfernen oder deaktivieren. Falls Ihre Anwendung keine Struts-1-Kompatibilitätsfunktionen benötigt, entfernen Sie das Plugin vollständig, um die Angriffsfläche zu eliminieren.

  3. ActionMessage-Eingaben bereinigen. Stellen Sie als Defense-in-Depth-Maßnahme sicher, dass alle benutzergesteuerten Werte, die an ActionMessage-Objekte übergeben werden, ordnungsgemäß validiert und bereinigt werden. Vermeiden Sie die direkte Weitergabe unbereinigter Benutzereingaben.

  4. Web Application Firewall einsetzen. Konfigurieren Sie WAF-Regeln zur Erkennung und Blockierung von OGNL-Injection-Mustern in HTTP-Anfragen an Struts-Anwendungen als temporäre Schutzmaßnahme.

  5. Auf Kompromittierung prüfen. Analysieren Sie Serverprotokolle auf ungewöhnliche Anfragemuster, unerwartete Prozessausführungen und unautorisierte Dateiänderungen. Angesichts der Verfügbarkeit öffentlicher Exploits sollte jedes ungepatchte System als kompromittiert betrachtet werden.

  6. Netzwerksegmentierung implementieren. Beschränken Sie ausgehende Netzwerkverbindungen von Anwendungsservern, um Datenexfiltration und Command-and-Control-Kommunikation nach erfolgreicher Ausnutzung einzudämmen.

Technische Details

CVE-2017-9791 ist eine Remote-Code-Execution-Schwachstelle im Struts-1-Plugin für Apache Struts 2. Die Schwachstelle entsteht durch unzureichende Bereinigung von Benutzereingaben in ActionMessage-Ressourcenwerten.

Angriffsvektor: Netzwerk (AV:N), niedrige Komplexität (AC:L), keine Authentifizierung erforderlich (PR:N), keine Benutzerinteraktion nötig (UI:N). Dies ermöglicht jedem Angreifer mit HTTP-Zugriff auf die Anwendung die triviale Ausnutzung.

Technischer Ablauf: Bei Verwendung des Struts-1-Plugins zur Integration von Legacy-Struts-1-Aktionen in Struts-2-Anwendungen werden benutzerbereitgestellte Feldwerte in ActionMessage-Objekte eingefügt. Das Struts-2-Framework verarbeitet diese Werte über seinen OGNL-Ausdrucksauswertungsmechanismus. Durch Einschleusung manipulierter OGNL-Ausdrücke wird der Server zur Auswertung beliebigen Codes gezwungen. Die OGNL-Ausdruckssprache bietet Zugriff auf Java-Runtime-Methoden und ermöglicht die Ausführung von Systembefehlen.

Betroffene Versionen: Apache Struts 2.3.1 bis 2.3.32 bei aktiviertem Struts-1-Plugin.

CVSS-Vektor: AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H — Netzwerkzugriff, keine Privilegien, vollständige Auswirkungen auf Vertraulichkeit, Integrität und Verfügbarkeit ergeben den maximalen Basisscore von 9.8.

Häufig gestellte Fragen

Was ist CVE-2017-9791?

CVE-2017-9791 ist eine kritische Remote-Code-Execution-Schwachstelle im Struts-1-Plugin für Apache Struts 2. Sie ermöglicht nicht authentifizierten Angreifern die Ausführung beliebigen Codes auf dem Server durch manipulierte Feldwerte, die als OGNL-Ausdrücke über die ActionMessage-Klasse verarbeitet werden. Die Schwachstelle hat einen CVSS-Score von 9.8.

Welche Versionen von Apache Struts sind betroffen?

Betroffen sind Apache-Struts-Versionen 2.3.1 bis 2.3.32, wenn das Struts-1-Plugin aktiviert ist. Anwendungen, die das Struts-1-Plugin nicht verwenden, sind von dieser spezifischen Schwachstelle nicht betroffen. Die Schwachstelle ist im Apache-Struts-Sicherheitsbulletin S2-048 dokumentiert.

Wie behebe ich CVE-2017-9791?

Aktualisieren Sie Apache Struts auf eine Version mit dem S2-048-Fix. Falls eine sofortige Aktualisierung nicht möglich ist, deaktivieren oder entfernen Sie das Struts-1-Plugin. Als Übergangsmaßnahme stellen Sie sicher, dass benutzergesteuerte Werte nicht direkt an ActionMessage-Objekte übergeben werden, und setzen Sie WAF-Regeln zur Blockierung von OGNL-Injection-Versuchen ein.

Wie schwerwiegend ist CVE-2017-9791?

CVE-2017-9791 ist mit einem CVSS-Score von 9.8 als KRITISCH eingestuft. Der EPSS-Score von 94,24 % (99,93. Perzentile) bestätigt eine extrem hohe Ausnutzungswahrscheinlichkeit. CISA hat die aktive Ausnutzung durch Aufnahme in den KEV-Katalog bestätigt. Öffentliche Exploits sind leicht verfügbar, wodurch jede ungepatchte Struts-Anwendung ein einfaches Ziel darstellt.

CVSS-Score

9.8
CRITICAL(9.8)

EPSS-Score

EPSS-Score98.91%
EPSS-Perzentil99.9%

Daten

Veröffentlicht10. Juli 2017
Zuletzt geändert17. Juni 2026
StatusAnalyzed
CVSS-Versionv3.1

Hilfe beim Schwachstellenmanagement?

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