CVE-2017-9805
Apache Struts Deserialization of Untrusted Data Vulnerability
Beschreibung
CVE-2017-9805 ist eine Deserialisierungsschwachstelle mit hohem Schweregrad im Apache Struts REST Plugin. Die Schwachstelle besteht, weil das REST Plugin einen XStreamHandler mit einer XStream-Instanz zur Deserialisierung ohne jegliche Typfilterung verwendet, was Angreifern die Remote-Code-Ausführung durch speziell präparierte XML-Payloads ermöglicht. CVE-2017-9805 betrifft Apache Struts Versionen 2.1.1 bis 2.3.x vor 2.3.34 und 2.5.x vor 2.5.13. CISA hat diese Schwachstelle in den KEV-Katalog aufgenommen, und mit einem EPSS-Score von 94,3 % (99,9. Perzentile) ist die Ausnutzung nahezu sicher.
KEV-Informationen
CVSS-Score
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:HIm Rechner öffnenBetroffene Produkte
| Hersteller | Produkt | Version |
|---|---|---|
| apache | struts | >= 2.1.2, < 2.3.34; >= 2.5.0, < 2.5.13 |
| cisco | digital media manager | - |
| cisco | hosted collaboration solution | 10.5\(1\); 11.0\(1\); 11.5\(1\); 11.6\(1\) |
| cisco | media experience engine | 3.5; 3.5.2 |
| cisco | network performance analysis | - |
| cisco | video distribution suite for internet streaming | - |
| netapp | oncommand balance | - |
Mehrere CVSS-Bewertungen
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H
Referenzen
- http://www.oracle.com/technetwork/security-advisory/alert-cve-2017-9805-3889403.html(Patch, Third Party Advisory)
- http://www.securityfocus.com/bid/100609(Broken Link, Third Party Advisory, VDB Entry)
- http://www.securitytracker.com/id/1039263(Broken Link, Third Party Advisory, VDB Entry)
- https://blogs.apache.org/foundation/entry/apache-struts-statement-on-equifax(Vendor Advisory)
- https://bugzilla.redhat.com/show_bug.cgi?id=1488482(Issue Tracking, Third Party Advisory, VDB Entry)
- https://cwiki.apache.org/confluence/display/WW/S2-052(Mitigation, Vendor Advisory)
- https://lgtm.com/blog/apache_struts_CVE-2017-9805(Broken Link)
- https://security.netapp.com/advisory/ntap-20170907-0001/(Third Party Advisory)
- https://struts.apache.org/docs/s2-052.html(Mitigation, Vendor Advisory)
- https://tools.cisco.com/security/center/content/CiscoSecurityAdvisory/cisco-sa-20170907-struts2(Third Party Advisory)
- https://www.exploit-db.com/exploits/42627/(Exploit, Third Party Advisory, VDB Entry)
- https://www.kb.cert.org/vuls/id/112992(Third Party Advisory, US Government Resource)
- https://www.cisa.gov/known-exploited-vulnerabilities-catalog?field_cve=CVE-2017-9805(US Government Resource)
Schwachstellentyp
CWE-502: Deserialisierung nicht vertrauenswürdiger Daten
In Apache Struts tritt die Deserialisierungsschwachstelle auf, weil der XStreamHandler des REST Plugins eingehende XML-Payloads mittels XStream ohne jegliche Typfilterung oder Klassenbeschränkungen deserialisiert. Dies ermöglicht Angreifern, bösartige serialisierte Objekte (Gadget Chains) zu erstellen, die während des Deserialisierungsprozesses beliebige Code-Ausführung auslösen.
Weitere Informationen: CWE-502 — Deserialisierung nicht vertrauenswürdiger Daten
Auswirkungsanalyse
CVE-2017-9805 hat einen CVSS 3.1-Score von 8,1 (HIGH) und stellt eine ernsthafte Remote-Code-Execution-Bedrohung für Apache Struts-Webanwendungen dar. Die Schwachstelle ist über das Netzwerk ohne Authentifizierung und ohne Benutzerinteraktion ausnutzbar, wobei die Angriffskomplexität als hoch eingestuft wird, da speziell präparierte Deserialisierungs-Payloads erforderlich sind. Eine erfolgreiche Ausnutzung führt zu hohen Auswirkungen auf Vertraulichkeit, Integrität und Verfügbarkeit und ermöglicht die vollständige Serverkompromittierung. Der EPSS-Score von 94,3 % zeigt eine nahezu sichere Ausnutzungsaktivität. Organisationen mit betroffenen Struts-Versionen sind einem unmittelbaren Risiko der vollständigen Server-Kompromittierung ausgesetzt.
Exploit-Reifegrad
CVE-2017-9805 verfügt über einen umfangreichen Exploit-Reifegrad mit bestätigter aktiver Ausnutzung. CISA hat die Schwachstelle im KEV-Katalog gelistet. Öffentlich verfügbarer Exploit-Code ist über die Exploit Database verfügbar. Die Apache Foundation hat diese Schwachstellenklasse in ihrer Stellungnahme zum Equifax-Vorfall ausdrücklich erwähnt. Der EPSS-Score von 94,3 % (99,9. Perzentile) bestätigt eine nahezu sichere Ausnutzungsaktivität, und Organisationen mit betroffenen Struts-Versionen sollten die Behebung als Notfallpriorität behandeln.
Behebung
- Apache Struts sofort aktualisieren gemäß CISA-KEV-Pflichtmaßnahme: Apply updates per vendor instructions. Aktualisieren Sie auf Apache Struts 2.3.34 oder neuer (2.3.x-Branch) bzw. 2.5.13 oder neuer (2.5.x-Branch).
- Wenn das REST Plugin nicht benötigt wird, entfernen Sie es vollständig aus der Struts-Deployment. Falls das Plugin erforderlich ist, konfigurieren Sie Struts so, dass nur JSON akzeptiert und XML-Anfragen abgelehnt werden.
- Setzen Sie eine Web Application Firewall (WAF) mit Regeln zur Erkennung und Blockierung bösartiger XStream-Deserialisierungs-Payloads ein.
- Prüfen Sie Anwendungsprotokolle auf verdächtige POST-Anfragen an REST-Endpunkte mit XML-Payloads, insbesondere solche mit ungewöhnlichen Java-Klassenreferenzen.
- Prüfen Sie alle Anwendungen auf Apache Struts-Abhängigkeiten, einschließlich der in Cisco- und NetApp-Produkten eingebetteten Versionen, und wenden Sie herstellerspezifische Patches an.
Technische Details
CVE-2017-9805 ist eine Deserialisierungsschwachstelle im Apache Struts REST Plugin, die Versionen 2.1.1 bis 2.3.x vor 2.3.34 und 2.5.x vor 2.5.13 betrifft. Die Schwachstelle existiert im XStreamHandler, der XStream zur Deserialisierung eingehender XML-Payloads ohne Typfilterung oder Klassenbeschränkungen verwendet. Der CVSS-Vektor CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H zeigt netzwerkzugängliche Ausnutzung ohne Authentifizierung, wobei die hohe Angriffskomplexität die Notwendigkeit speziell präparierter Payloads reflektiert. Angreifer senden XML-Payloads mit serialisierten Java-Objekten, die eine Kette von Methodenaufrufen (Gadget Chain) auslösen und zur beliebigen Befehlsausführung auf dem Anwendungsserver führen.
Häufig gestellte Fragen
Wird CVE-2017-9805 aktiv ausgenutzt?
Ja. CVE-2017-9805 ist im CISA KEV-Katalog gelistet und wird aktiv ausgenutzt. Der EPSS-Score von 94,3 % (99,9. Perzentile) zeigt eine nahezu sichere Ausnutzungsaktivität. Öffentlicher Exploit-Code ist weit verbreitet.
Welche Produkte sind von CVE-2017-9805 betroffen?
CVE-2017-9805 betrifft Apache Struts Versionen 2.1.2 bis 2.3.x vor 2.3.34 und 2.5.x vor 2.5.13. Zusätzlich betroffen sind Cisco Digital Media Manager, Hosted Collaboration Solution, Media Experience Engine und NetApp OnCommand Balance.
Wie behebe ich CVE-2017-9805?
Aktualisieren Sie Apache Struts auf Version 2.3.34 oder neuer (2.3.x-Branch) bzw. 2.5.13 oder neuer (2.5.x-Branch). Wenn das REST Plugin nicht benötigt wird, entfernen Sie es. Falls erforderlich, konfigurieren Sie es so, dass nur JSON akzeptiert wird.
Wie schwerwiegend ist CVE-2017-9805?
CVE-2017-9805 hat einen CVSS 3.1-Score von 8,1 (HIGH) und einen EPSS-Score von 94,3 % (99,9. Perzentile). Die Schwachstelle ermöglicht Remote-Code-Ausführung auf Apache Struts-Servern und gehört zu den am aktivsten angegriffenen Struts-Schwachstellen.
Hilfe beim Schwachstellenmanagement?
Unsere Sicherheitsexperten helfen Ihnen bei der Priorisierung und Behebung von Schwachstellen.