CVE-2024-53677
Apache Struts: обход ограничений загрузки файлов
CVE-2024-53677 затрагивает приложения Apache Struts, использующие старый FileUploadInterceptor. В определённых конфигурациях манипуляция параметрами загрузки допускает traversal и может привести к RCE; требуется обновление и миграция механизма загрузки.
Кому нужно проверить
Разработчикам и администраторам приложений Apache Struts с загрузкой файлов и старым interceptor. Важна не только марка продукта, но и конкретная версия, способ установки, операционная система и конфигурация.
В чём риск
Атакующий может управлять параметрами загрузки и направить файл за пределы ожидаемого каталога. При подходящей конфигурации загрузка вредоносного файла может завершиться выполнением кода с правами приложения.
Затронутые версии
Затронуты Struts 2.0.0–2.3.37, 2.5.0–2.5.33 и 6.0.0–6.3.0.2, если приложение использует FileUploadInterceptor. Приложения, не использующие этот interceptor, по advisory безопасны именно от этого сценария; EOL-ветки не получают обычную поддержку.
Исправленные версии
Apache Struts рекомендует обновиться минимум до 6.4.0 и перейти на новый Action File Upload механизм. Изменение не обратно совместимо: действия нужно переписать, а продолжение старого механизма оставляет приложение уязвимым.
Что сделать
- 1Определите точную версию Struts и проверьте конфигурацию actions/interceptors: наличие FileUploadInterceptor является ключевым условием применимости.
- 2Обновите до Struts 6.4.0 или более нового поддерживаемого выпуска и мигрируйте actions на Action File Upload механизм. Сначала проверьте миграцию на staging с обычными типами и размерами файлов.
- 3До миграции отключите затронутые upload-действия или ограничьте их доверенными пользователями, если это совместимо с бизнес-процессом. Это временная изоляция, а не исправление.
- 4После выкладки проверьте обработку имён, каталогов, типов и размеров файлов, журналы загрузок и права каталога. Ищите признаки неожиданных файлов и при необходимости проводите расследование отдельно от обновления.
Переход на новый upload-механизм
Проверка конфигурации важна не меньше номера зависимости.
- 1Найти FileUploadInterceptor
- 2Обновить Struts и переписать actions
- 3Проверить загрузку на staging
- 4Ограничить права каталога и проверить журналы
Примеры конфигурации и проверки
mvn dependency:tree -Dincludes=org.apache.struts:struts2-coreЗапускайте в копии исходного проекта с Maven. Команда только выводит разрешённую зависимость; она не проверяет runtime classpath, переопределения и наличие старого FileUploadInterceptor, поэтому результат нужно сопоставить с собранным приложением.
Как не подпустить ботов к сайту
BotProtection принимает запросы перед вашим сайтом и фильтрует автоматизированные обращения. Поэтому ботам сложнее добраться до уязвимого компонента и начать его проверять или атаковать, а вероятность успешной автоматизированной атаки становится значительно ниже. Это дополнительный слой защиты: обновление уязвимых компонентов, проверка журналов и реагирование на инциденты остаются обязательными.
Первоисточники
Снизьте шанс атаки до того, как бот дойдёт до сайта
Подключите BotProtection как фильтр перед сайтом: подозрительные автоматизированные запросы отсекаются до обращения к вашему серверу. Это значительно снижает вероятность автоматизированной атаки, но не исправляет саму уязвимость, поэтому обновление и настройка компонентов остаются обязательными.