CVE-2024-56337
Apache Tomcat: неполная защита после CVE-2024-50379
CVE-2024-56337 — отдельная проблема неполной mitigation для CVE-2024-50379. На case-insensitive filesystem с записью Default Servlet недостаточно только обновить Tomcat: проверьте sun.io.useCanonCaches в зависимости от версии Java.
Кому нужно проверить
Администраторам Tomcat, которые закрывали CVE-2024-50379 настройкой Java или обновлением сервера. Важна не только марка продукта, но и конкретная версия, способ установки, операционная система и конфигурация.
В чём риск
Если после первой меры остаётся проблемное кэширование канонических путей, защитные проверки могут быть недостаточны и сохранить сценарий записи/выполнения, описанный для CVE-2024-50379.
Затронутые версии
Затронуты Tomcat 9.0.0.M1–9.0.98, 10.1.0-M1–10.1.34 и 11.0.0-M1–11.0.2 в сценарии CVE-2024-50379: case-insensitive filesystem и write enabled Default Servlet. Для Tomcat 10.0.x новые advisory после EOL не проверяются и исправления не выпускаются.
Исправленные версии
Исправление связано с Tomcat 9.0.98, 10.1.34 и 11.0.2 и дополнительной настройкой Java: для Java 8/11 явно false, для Java 17 false если свойство задано, Java 21+ не требует настройки, поскольку cache удалён.
Что сделать
- 1Проверьте, применимы ли одновременно case-insensitive filesystem и write enabled Default Servlet; не рассматривайте CVE-2024-56337 как замену анализа CVE-2024-50379.
- 2Установите исправленный Tomcat 9.0.98, 10.1.34, 11.0.2 или более новый поддерживаемый выпуск и проверьте Java runtime каждого процесса.
- 3На Java 8/11 явно задайте sun.io.useCanonCaches=false, на Java 17 проверьте отсутствие true; на Java 21+ подтвердите, что используется runtime без старого cache. Протестируйте старт и работу приложения.
- 4После перезапуска проверьте effective параметры, запись в безопасном каталоге, журналы и доступность приложений. Если обновление откатывается, не возвращайте write enabled без временной изоляции.
Проверка неполной mitigation
Сначала нужно связать вторую CVE с условиями первой.
- 1Проверить условия CVE-2024-50379
- 2Определить версию Java
- 3Установить Tomcat и правильное значение свойства
- 4Проверить runtime и приложение
Примеры конфигурации и проверки
java -versionКоманда только выводит версию Java из текущего PATH. Для Tomcat в службе проверьте фактический путь Java в unit/service environment; результат не показывает параметры JVM, поэтому значение sun.io.useCanonCaches нужно подтвердить отдельно.
Как не подпустить ботов к сайту
BotProtection принимает запросы перед вашим сайтом и фильтрует автоматизированные обращения. Поэтому ботам сложнее добраться до уязвимого компонента и начать его проверять или атаковать, а вероятность успешной автоматизированной атаки становится значительно ниже. Это дополнительный слой защиты: обновление уязвимых компонентов, проверка журналов и реагирование на инциденты остаются обязательными.
Первоисточники
Снизьте шанс атаки до того, как бот дойдёт до сайта
Подключите BotProtection как фильтр перед сайтом: подозрительные автоматизированные запросы отсекаются до обращения к вашему серверу. Это значительно снижает вероятность автоматизированной атаки, но не исправляет саму уязвимость, поэтому обновление и настройка компонентов остаются обязательными.