В web-фреймворке Apache Struts, применяемом для создания web-приложений на языке Java с использованием парадигмы ММС (Model-View-Controller), выявлена уязвимость (CVE-2024-53677). Уязвимость даёт возможность внешнему злоумышленнику записать файл в произвольное место файловой системы на сервере через отправку специально оформленного HTTP-запроса. Проблема затрагивает выпуски с 2.0.0 по 2.3.37, c 2.5.0 по 2.5.33 и с 6.0.0 по 6.3.0.2, и проявляется в приложениях, использующих компонент FileUploadInterceptor за загрузки файлов сервер.
Уязвимость вызвана отсутствием должной проверки параметров, передаваемых при загрузке файлов. При наличии доступа к функциям загрузки файлов в реализованном на базе Apache Struts web-интерфейсе, атакующий может добиться сохранения файла за пределами каталога, предназначенного для сохранения загружаемых данных. Получив возможность записи файлов в произвольные части ФС можно организовать выполнение своих команд на сервере, перезаписав скрипты или файлы конфигурации, насколько это позволяют права пользователя, под которым выполняется web-приложение. Если web-приложение выполняется в контейнере Apache Tomcat, запускаемом с правами root, атакующий может получить привилегированный доступ в систему.
Уязвимости в Apache Struts имеют значение, так как данный фреймворк пользуется популярностью в корпоративных системах, доступных через web. По статистике RedMonk фреймворк Apache Struts применялся в web-приложениях 65% компаний из списка Fortune 100. В 2017 году атака на информационную систему компании Equifax, использующую уязвимую версию. Apache Struts, привела к утечке персональных данных 143 млн жителей США.