Американский фонд Apache Software Foundation опубликовал информацию о серьезной уязвимости в модуле Coyote, входящем в состав популярного веб-сервера Apache Tomcat. Брешь, обнаруженная в Maven-артефакте org.apache.tomcat:tomcat-coyote, может быть использована злоумышленниками для организации атак типа "отказ в обслуживании" (DoS), что грозит перегрузкой сервера и нарушением его работы. Проблема связана с некорректной обработкой HTTP/2-трафика, что позволяет атакующему обходить ограничения на количество одновременных потоков и чрезмерно нагружать серверные ресурсы.
Эксперты по кибербезопасности предупреждают, что данная уязвимость представляет особую угрозу для компаний, использующих Tomcat в корпоративных Java-решениях, включая веб-приложения, развернутые на Spring Boot и других фреймворках. Поскольку Apache Tomcat остается одним из наиболее распространенных серверов для развертывания Java-приложений, его безопасность критически важна для обеспечения бесперебойной работы онлайн-сервисов.
Технические подробности уязвимости
Проблема заключается в механизме обработки HTTP/2-соединений, в частности, в отсутствии строгой проверки подтверждения (acknowledgment) от клиента после получения начального SETTINGS-фрейма. Согласно стандарту HTTP/2 (RFC 7540), этот фрейм устанавливает ключевые параметры соединения, включая максимальное количество одновременных потоков. Однако, если клиент игнорирует подтверждение, сервер продолжает принимать новые запросы без ограничений, что приводит к переполнению рабочих потоков и исчерпанию памяти или процессорных ресурсов.
HTTP/2 был разработан для повышения производительности за счет мультиплексирования запросов через единое TCP-соединение, но в данном случае эта функциональность становится инструментом для атаки. Злоумышленник может установить соединение, проигнорировать подтверждение SETTINGS и завалить сервер множеством потоков, что приведет к отказу в обслуживании. Особенно опасен этот сценарий для высоконагруженных систем, где Tomcat используется в качестве встроенного сервлет-контейнера.
Затронутые версии и рекомендации по устранению
Уязвимость затрагивает широкий спектр версий Apache Tomcat: от 11.0.0-M1 до 11.0.9, от 10.1.0-M1 до 10.1.43, а также от 9.0.0.M1 до 9.0.107. Это означает, что проблема существует как в относительно новых ветках (11.x и 10.x), так и в устаревших релизах, которые до сих пор используются в системах на Java 8. Разработчики выпустили исправленные версии: 11.0.9, 10.1.43 и 9.0.107 - их установка является единственным надежным способом устранения уязвимости.
Поскольку модуль Coyote часто подключается косвенно через зависимости Maven (например, tomcat-embed-core), администраторам рекомендуется проверить все используемые библиотеки и обновить их до актуальных версий. Кроме того, в качестве временной меры защиты можно настроить ограничение скорости соединений (rate limiting) на сетевом уровне или использовать обратные прокси-серверы (NGINX, Apache HTTP Server), однако эти методы лишь частично снижают риск, не устраняя саму уязвимость.
Дополнительные меры безопасности
Данный инцидент в очередной раз демонстрирует сложности, связанные с реализацией HTTP/2 в различных программных продуктах. Ранее в Tomcat уже обнаруживались уязвимости, связанные с обработкой заголовков и управлением соединениями, что подчеркивает необходимость тщательного тестирования стека протоколов. Организациям рекомендуется внедрять автоматизированные системы мониторинга уязвимостей, такие как OWASP Dependency-Check, и включать проверки обновлений в CI/CD-процессы.
На текущий момент не зафиксировано случаев активной эксплуатации этой уязвимости в реальных атаках, однако, учитывая популярность Tomcat в корпоративном секторе, промедление с обновлением может привести к серьезным последствиям, особенно для финансовых и e-commerce-платформ, где даже кратковременный простой означает значительные убытки. Apache Software Foundation продолжает отслеживать ситуацию и рекомендует всем пользователям Tomcat как можно скорее принять меры для защиты своих систем.