Błąd w logice przesyłania plików w Apache Struts pozwala atakującemu na manipulację parametrami uploadu w celu wykonania path traversal, a w konsekwencji wgrania złośliwego pliku i zdalnego wykonania kodu (RCE). Podatność dotyczy szerokiej gamy wersji frameworka — od 2.0.0 do wersji przed 6.4.0.
▸ Pokaż oryginał (EN)
File upload logic in Apache Struts is flawed. An attacker can manipulate file upload params to enable paths traversal and under some circumstances this can lead to uploading a malicious file which can be used to perform Remote Code Execution. This issue affects Apache Struts: from 2.0.0 before 6.4.0. Users are recommended to upgrade to version 6.4.0 at least and migrate to the new file upload mechanism https://struts.apache.org/core-developers/file-upload . If you are not using an old file upload logic based on FileuploadInterceptor your application is safe. You can find more details in https://cwiki.apache.org/confluence/display/WW/S2-067
Atakujący manipuluje parametrami żądania związanymi z przesyłaniem plików (file upload params), co pozwala na obejście ograniczeń ścieżki docelowej poprzez path traversal. W sprzyjających okolicznościach umożliwia to zapisanie złośliwego pliku w dowolnej lokalizacji na serwerze. Wgrany plik może następnie zostać wykonany przez serwer, co prowadzi do Remote Code Execution. Podatność jest powiązana z mechanizmem FileuploadInterceptor — aplikacje korzystające wyłącznie z nowego mechanizmu uploadu nie są narażone.
Atakujący może uzyskać pełną kontrolę nad serwerem poprzez zdalne wykonanie dowolnego kodu (RCE), co może prowadzić do kompromitacji poufności, integralności i dostępności zarówno zaatakowanego systemu, jak i połączonych z nim zasobów.
Należy zaktualizować Apache Struts do wersji 6.4.0 lub nowszej oraz przeprowadzić migrację do nowego mechanizmu przesyłania plików opisanego pod adresem https://struts.apache.org/core-developers/file-upload. Aplikacje, które nie używają FileuploadInterceptor, nie są podatne. Szczegóły opisano w biuletynie S2-067: https://cwiki.apache.org/confluence/display/WW/S2-067
Apache Struts w wersjach od 2.0.0 do 6.3.x (przed 6.4.0), korzystające ze starego mechanizmu przesyłania plików opartego na FileuploadInterceptor.
Producent potwierdza, że aplikacje korzystające wyłącznie z nowego mechanizmu file upload (nie opartego na FileuploadInterceptor) są bezpieczne. Podatność opisana w oficjalnym biuletynie Apache Struts jako S2-067.
CVSS:4.0/AV:N/AC:H/AT:P/PR:N/UI:N/VC:H/VI:H/VA:H/SC:H/SI:H/SA:H/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:N/AU:Y/R:A/V:C/RE:L/U:RedApache Struts
APPApache2.0.0 – 6.4.0 (bez)
Powiązane podatności
Forced OGNL evaluation, when evaluated on raw user input in tag attributes, may lead to remote code execution....
The Struts 1 plugin in Apache Struts 2.1.x and 2.3.x might allow remote code execution via a malicious field v...
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 ex...
Apache Struts 2.0.0 through 2.3.15 allows remote attackers to execute arbitrary OGNL expressions via a paramet...
The ExceptionDelegator component in Apache Struts before 2.2.3.1 interprets parameter values as OGNL expressio...