Krytyczna podatność w parserze Jakarta Multipart w Apache Struts 2 umożliwia zdalnym atakującym wykonanie dowolnych poleceń systemowych bez uwierzytelnienia. Luka była aktywnie exploitowana w warunkach rzeczywistych już w marcu 2017 roku.
▸ Pokaż oryginał (EN)
The Jakarta Multipart parser in Apache Struts 2 2.3.x before 2.3.32 and 2.5.x before 2.5.10.1 has incorrect exception handling and error-message generation during file-upload attempts, which allows remote attackers to execute arbitrary commands via a crafted Content-Type, Content-Disposition, or Content-Length HTTP header, as exploited in the wild in March 2017 with a Content-Type header containing a #cmd= string.
Parser Jakarta Multipart, używany podczas przesyłania plików, nieprawidłowo obsługuje wyjątki i generuje komunikaty błędów. Atakujący może wysłać specjalnie spreparowany nagłówek HTTP Content-Type, Content-Disposition lub Content-Length zawierający złośliwy payload (np. ciąg znaków #cmd=), który jest następnie interpretowany i wykonywany przez serwer jako polecenie systemowe. Błąd leży w nieodpowiednim przetwarzaniu danych wejściowych podczas obsługi wyjątków, co pozwala na wstrzyknięcie i wykonanie kodu po stronie serwera.
Atakujący może zdalnie wykonać dowolne polecenia systemowe na serwerze z uprawnieniami procesu aplikacji, co w praktyce oznacza pełne przejęcie kontroli nad systemem, w tym kradzież danych, instalację złośliwego oprogramowania lub dalszy lateral movement w sieci.
Należy niezwłocznie zaktualizować Apache Struts 2 do wersji 2.3.32 lub nowszej (dla gałęzi 2.3.x) albo do wersji 2.5.10.1 lub nowszej (dla gałęzi 2.5.x). Dla produktów IBM oraz Oracle należy zastosować patche dostępne u producenta zgodnie z referencjami. Jako obejście tymczasowe zaleca się filtrowanie lub blokowanie żądań HTTP z podejrzanymi nagłówkami Content-Type na poziomie firewall lub WAF.
Apache Struts 2 w wersjach 2.3.x przed 2.3.32 oraz 2.5.x przed 2.5.10.1; produkty IBM Storwize V3500 i IBM Storwize V3500 Firmware oparte na podatnych wersjach biblioteki
Podatność była aktywnie exploitowana w warunkach rzeczywistych w marcu 2017 roku, co potwierdzają referencje Talos Intelligence oraz Trend Micro. Eksploatacja odbywała się z użyciem nagłówka Content-Type zawierającego ciąg #cmd=.
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:HApache Struts
APPApache2.2.3 – 2.3.32 (bez)2.5.0 – 2.5.10.1 (bez)Arubanetworks Clearpass Policy Manager
APPArubanetworks< 6.6.5HP Server Automation
APPHp10.0.010.1.010.2.010.5.09.1.0IBM Storwize V3500
HWIbmwszystkie wersjeIBM Storwize V3500 Firmware
OSIbm7.7.1.67.8.1.0IBM Storwize V5000
HWIbmwszystkie wersjeIBM Storwize V5000 Firmware
OSIbm7.7.1.67.8.1.0IBM Storwize V7000
HWIbmwszystkie wersjeIBM Storwize V7000 Firmware
OSIbm7.7.1.67.8.1.0Lenovo Storage V5030
HWLenovowszystkie wersjeLenovo Storage V5030 Firmware
OSLenovo7.7.1.67.8.1.0Netapp Oncommand Balance
APPNetappwszystkie wersjeOracle Weblogic Server
APPOracle10.3.6.0.012.1.3.0.012.2.1.1.012.2.1.2.0
CISA KEV — szczegółyi
- Dostawcai
- Apache ↗
- Produkti
- Struts
- Data dodania do KEVi
- 3 listopada 2021
- Termin remediation (USA)i
- 3 maja 2022(po terminie)
- Ransomwarei
- Aktywne kampanie ransomware używają tej podatności
Zastosuj aktualizacje zgodnie z instrukcjami producenta.
▸ Pokaż oryginał (EN)
Apply updates per vendor instructions.
Apache Struts Jakarta Multipart parser umożliwia złośliwe przesyłanie plików przy użyciu wartości Content-Type, co prowadzi do zdalnego wykonania kodu (RCE).
▸ Pokaż oryginał (EN)
Apache Struts Jakarta Multipart parser allows for malicious file upload using the Content-Type value, leading to remote code execution.
Powiązane podatności
Spring4Shell — RCE przez data binding w Spring MVC/WebFlux na JDK 9+
RCE w Apache Struts 2 poprzez wymuszoną ewaluację OGNL
Oracle WebLogic Server — Auth Bypass w komponencie Console (RCE)
RCE bez uwierzytelnienia w konsoli Oracle WebLogic Server
RCE w Oracle WebLogic Server — przejęcie serwera przez IIOP/T3