CVE-2024-50379
Apache Tomcat: RCE при записи через Default Servlet
CVE-2024-50379 затрагивает Tomcat с включённой записью Default Servlet на файловой системе без различия регистра. Обновите ветку Tomcat и не смешивайте эту уязвимость с последующим CVE-2024-56337 о неполной mitigation.
Кому нужно проверить
Администраторам Tomcat на Windows и других case-insensitive файловых системах с включённой записью Default Servlet. Важна не только марка продукта, но и конкретная версия, способ установки, операционная система и конфигурация.
В чём риск
При заданной конфигурации удалённый пользователь может использовать запись и особенности нормализации пути, чтобы разместить файл в неожиданном месте и добиться выполнения кода с правами процесса Tomcat.
Затронутые версии
Tomcat 9.0.0.M1–9.0.97, 10.1.0-M1–10.1.33 и 11.0.0-M1–11.0.1 затронуты при одновременном использовании case-insensitive filesystem и разрешённой записи Default Servlet. На Tomcat 10.0.x исправления новых уязвимостей после EOL не выпускаются; переходите на поддерживаемую 10.1.x или новее.
Исправленные версии
Исправлено в Tomcat 9.0.98, 10.1.34 и 11.0.2. Для Java 8/11 после обновления требуется явно установить sun.io.useCanonCaches=false; на Java 17 установленное значение должно быть false; на Java 21+ проблемный cache удалён.
Что сделать
- 1Проверьте ветку и точную версию Tomcat, ОС/файловую систему и effective-конфигурацию Default Servlet. Не переносите условия CVE на Tomcat без включённой записи.
- 2Обновите до 9.0.98, 10.1.34, 11.0.2 или более нового поддерживаемого выпуска. Для 10.0.x запланируйте миграцию на 10.1.x или новее.
- 3Для Java 8/11 установите sun.io.useCanonCaches=false, для Java 17 убедитесь, что оно false; на Java 21+ дополнительная настройка не нужна. Проверьте изменение на staging и сохраните план отката.
- 4После перезапуска проверьте запись только в безопасном тестовом каталоге, обычные приложения, права файлов и журналы. Не оставляйте write enabled ради обратной совместимости без явной оценки риска.
Проверка записи Default Servlet
Применимость зависит от версии, файловой системы и Java.
- 1Определить ветку Tomcat
- 2Проверить case-insensitive filesystem и write
- 3Обновить Tomcat и Java-настройку
- 4Проверить приложения и журналы
Примеры конфигурации и проверки
java -cp "$CATALINA_HOME/lib/catalina.jar" org.apache.catalina.util.ServerInfoВыполняйте на сервере с установленным Tomcat и корректным CATALINA_HOME; команда только выводит сведения о runtime. Для Windows используйте эквивалентный classpath. Она не показывает effective web.xml и не подтверждает настройки файловой системы.
Как не подпустить ботов к сайту
BotProtection принимает запросы перед вашим сайтом и фильтрует автоматизированные обращения. Поэтому ботам сложнее добраться до уязвимого компонента и начать его проверять или атаковать, а вероятность успешной автоматизированной атаки становится значительно ниже. Это дополнительный слой защиты: обновление уязвимых компонентов, проверка журналов и реагирование на инциденты остаются обязательными.
Первоисточники
Снизьте шанс атаки до того, как бот дойдёт до сайта
Подключите BotProtection как фильтр перед сайтом: подозрительные автоматизированные запросы отсекаются до обращения к вашему серверу. Это значительно снижает вероятность автоматизированной атаки, но не исправляет саму уязвимость, поэтому обновление и настройка компонентов остаются обязательными.