CVE-2023-44487
Apache Tomcat HTTP/2 Rapid Reset: отказ в обслуживании
CVE-2023-44487 затрагивает HTTP/2 в Tomcat 9.0.0.M1–9.0.80, 10.1.0-M1–10.1.13 и 11.0.0-M1–11.0.0-M2. Обновите Tomcat; не смешивайте этот DoS с RCE через Default Servlet.
Кому нужно проверить
Администраторам Tomcat с включённым HTTP/2, особенно публичных reverse proxy и API-сервисов. Важна не только марка продукта, но и конкретная версия, способ установки, операционная система и конфигурация.
В чём риск
Удалённый клиент может создавать и быстро сбрасывать HTTP/2 streams, расходуя ресурсы сервера и делая приложение недоступным. Это отказ в обслуживании, а не подтверждённое выполнение кода.
Затронутые версии
Затронуты Tomcat 9.0.0.M1–9.0.80, 10.1.0-M1–10.1.13 и 11.0.0-M1–11.0.0-M2 при доступном HTTP/2 connector. Уязвимость — в реализации HTTP/2 и не требует условий записи Default Servlet из CVE-2024-50379.
Исправленные версии
Исправлено в Tomcat 9.0.81, 10.1.14 и 11.0.0-M3. Используйте актуальный поддерживаемый выпуск или пакет поставщика с backport.
Что сделать
- 1Определите ветку и версию Tomcat и проверьте, какие connectors реально используют HTTP/2; учитывайте backport пакета ОС.
- 2Обновите до 9.0.81, 10.1.14, 11.0.0-M3 или более нового поддерживаемого выпуска. Перед перезапуском сохраните конфигурацию и проверьте staging.
- 3Если обновление задерживается, временно отключите HTTP/2 только после оценки совместимости клиентов и прокси. Это снижает поверхность, но не заменяет обновление.
- 4После выкладки наблюдайте память, CPU, число соединений, latency и журналы Tomcat; отдельно проверьте обычные HTTP/2 и HTTP/1.1 сценарии. Не проводите стресс-тест на production.
Снижение риска HTTP/2 Rapid Reset
Обновление и наблюдаемость важнее фильтра отдельных запросов.
- 1Определить HTTP/2 connectors
- 2Проверить версию и backport
- 3Обновить Tomcat
- 4Проверить ресурсы и доступность
Примеры конфигурации и проверки
grep -R "server.info" "$CATALINA_HOME/lib" 2>/dev/null | headДиагностическая команда только читает локальные файлы и может не дать результата в упакованной установке. Надёжнее сопоставить её с package manager и фактическим процессом; команда не проверяет HTTP/2 connector.
Как не подпустить ботов к сайту
BotProtection принимает запросы перед вашим сайтом и фильтрует автоматизированные обращения. Поэтому ботам сложнее добраться до уязвимого компонента и начать его проверять или атаковать, а вероятность успешной автоматизированной атаки становится значительно ниже. Это дополнительный слой защиты: обновление уязвимых компонентов, проверка журналов и реагирование на инциденты остаются обязательными.
Первоисточники
Снизьте шанс атаки до того, как бот дойдёт до сайта
Подключите BotProtection как фильтр перед сайтом: подозрительные автоматизированные запросы отсекаются до обращения к вашему серверу. Это значительно снижает вероятность автоматизированной атаки, но не исправляет саму уязвимость, поэтому обновление и настройка компонентов остаются обязательными.