Все уязвимости

CVE-2024-50379

Apache Tomcat: RCE при записи через Default Servlet

CVE-2024-50379 затрагивает Tomcat с включённой записью Default Servlet на файловой системе без различия регистра. Обновите ветку Tomcat и не смешивайте эту уязвимость с последующим CVE-2024-56337 о неполной mitigation.

Проверено 30 октября 2026Apache Tomcat оценивает проблему как Important и описывает потенциальное Remote Code Execution.

Кому нужно проверить

Администраторам 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. 1Проверьте ветку и точную версию Tomcat, ОС/файловую систему и effective-конфигурацию Default Servlet. Не переносите условия CVE на Tomcat без включённой записи.
  2. 2Обновите до 9.0.98, 10.1.34, 11.0.2 или более нового поддерживаемого выпуска. Для 10.0.x запланируйте миграцию на 10.1.x или новее.
  3. 3Для Java 8/11 установите sun.io.useCanonCaches=false, для Java 17 убедитесь, что оно false; на Java 21+ дополнительная настройка не нужна. Проверьте изменение на staging и сохраните план отката.
  4. 4После перезапуска проверьте запись только в безопасном тестовом каталоге, обычные приложения, права файлов и журналы. Не оставляйте write enabled ради обратной совместимости без явной оценки риска.

Проверка записи Default Servlet

Применимость зависит от версии, файловой системы и Java.

  1. 1Определить ветку Tomcat
  2. 2Проверить case-insensitive filesystem и write
  3. 3Обновить Tomcat и Java-настройку
  4. 4Проверить приложения и журналы

Примеры конфигурации и проверки

Проверить версию Tomcat по установленному каталогу (shell)
java -cp "$CATALINA_HOME/lib/catalina.jar" org.apache.catalina.util.ServerInfo

Выполняйте на сервере с установленным Tomcat и корректным CATALINA_HOME; команда только выводит сведения о runtime. Для Windows используйте эквивалентный classpath. Она не показывает effective web.xml и не подтверждает настройки файловой системы.

Как не подпустить ботов к сайту

BotProtection принимает запросы перед вашим сайтом и фильтрует автоматизированные обращения. Поэтому ботам сложнее добраться до уязвимого компонента и начать его проверять или атаковать, а вероятность успешной автоматизированной атаки становится значительно ниже. Это дополнительный слой защиты: обновление уязвимых компонентов, проверка журналов и реагирование на инциденты остаются обязательными.

Первоисточники

Снизьте шанс атаки до того, как бот дойдёт до сайта

Подключите BotProtection как фильтр перед сайтом: подозрительные автоматизированные запросы отсекаются до обращения к вашему серверу. Это значительно снижает вероятность автоматизированной атаки, но не исправляет саму уязвимость, поэтому обновление и настройка компонентов остаются обязательными.