CVE-2026-18661: обход ограничений доступа в Eclipse Jetty из-за некорректного слияния @ServletSecurity и web.xml
В Eclipse Jetty обнаружена уязвимость высокой критичности (CVSS 8.8), позволяющая обойти ограничения безопасности при смешанном использовании аннотации @ServletSecurity и секций security-constraint в web.xml. Проблема затрагивает компоненты jetty-annotations и jetty-eeN-annotations. Несмотря на высокий балл, эксплуатация требует специфической конфигурации приложения.
Подробности
Уязвимость затрагивает компонентыjetty-annotations и jetty-eeN-annotations в различных версиях Eclipse Jetty. Суть проблемы — в нарушении авторитетных правил сопоставления url-pattern, определённых спецификацией Jakarta Servlet.
Согласно спецификации, при одновременном использовании аннотации @ServletSecurity и элемента security-constraint в web.xml для одного и того же url-pattern контейнер обязан применять правила согласованно и предсказуемо. Однако в уязвимых версиях Jetty эта логика нарушалась в конкретном сценарии:
- в
web.xmlдля сервлета определено более одногоurl-pattern; - при этом
security-constraintприменяется только к части этих шаблонов; - параллельно используется аннотация
@ServletSecurity.
@ServletSecurity и security-constraint на одном url-pattern. Это могло привести к тому, что ограничения доступа, заданные разработчиком, не применялись к части URL-адресов — фактически открывая защищённые эндпоинты для неавторизованного доступа.
Оценка CVSS 8.8 (HIGH) отражает потенциально серьёзные последствия: обход аутентификации или авторизации на уровне веб-приложения, что в ряде сценариев ведёт к раскрытию конфиденциальных данных или доступу к административным функциям. При этом эксплуатация требует наличия специфической конфигурации (смешанное использование аннотаций и web.xml с несколькими url-pattern у сервлета), что несколько снижает массовость атак, но не отменяет риска для проектов, использующих такой подход.
Что делать
Рекомендуется в первую очередь обновиться до актуальной стабильной версии Eclipse Jetty, в которой устранена проблема. Точные номера исправленных версий следует уточнить в официальных бюллетенях Eclipse Foundation и релизных нотах Jetty. Если немедленное обновление невозможно, примените следующие митигации:- приведите конфигурацию безопасности к единообразию: не смешивайте
@ServletSecurityиsecurity-constraintвweb.xmlдля одних и тех жеurl-pattern; - убедитесь, что для сервлета с несколькими
url-patternправилоsecurity-constraintпокрывает все шаблоны, либо задайте ограничения через аннотации полностью; - проведите аудит существующих
web.xmlи аннотаций в приложениях на Jetty на предмет описанной конфигурации; - дополнительно ограничьте доступ к потенциально уязвимым эндпоинтам на уровне reverse-proxy или WAF до момента обновления.
web.xml. Приоритет исправления — высокий, особенно для приложений, где безопасность маршрутов задаётся смешанным способом. Обновление контейнера или приведение конфигурации к единому стилю закрывает вектор атаки.
Источник: CVE Project (cvelistV5)
