Вышло обновление Traefik, закрывающее три уязвимости, включая опасный обход аутентификации

Traefik

Разработчики популярного обратного прокси-сервера и балансировщика нагрузки Traefik выпустили обновления версий 2.11.52, 3.6.23 и 3.7.7. Патчи устраняют сразу три уязвимости, одна из которых оценена как высокая по шкале CVSS. Проблемы затрагивают механизмы обработки путей, проверки пространств имён и кросс-провайдерных ссылок в Kubernetes-окружениях. Пользователям настоятельно рекомендуется установить обновления.

Детали уязвимостей

Наиболее серьёзная из обнаруженных уязвимостей (идентификатор GHSA-cxjq-mrr5-89rv) связана с обходом аутентификации через middleware ReplacePathRegex. Этот модуль позволяет изменять пути входящих запросов на основе регулярных выражений. Как выяснилось, если выражение захватывает сегмент пути без обязательного разделителя, злоумышленник может сформировать запрос, после замены пути которого образуется неканоническая строка, например "/../admin". Traefik направлял такой путь внутреннему серверу без дополнительной проверки. В результате бэкенд, нормализующий пути, мог интерпретировать "/../admin" как обращение к защищённому ресурсу, расположенному за middleware аутентификации. Потенциально неавторизованный злоумышленник получает доступ к функционалу, доступ к которому должен быть ограничен. Разработчики отмечают, что аналогичная проблема ранее была исправлена для middleware StripPrefix (CVE-2026-48020), однако для ReplacePathRegex проверка нормализации заменённого пути отсутствовала. Теперь Traefik отклоняет любой запрос, заменённый путь которого не совпадает с его нормализованной формой. Эта уязвимость затрагивает все поддерживаемые версии Traefik (2.11.x до 2.11.51, 3.6.x до 3.6.22, 3.7.x до 3.7.6) и не требует специальных привилегий для эксплуатации.

Вторая уязвимость (GHSA-42cj-m3vj-89wv) связана с обходом политики безопасности в Kubernetes-провайдере Traefik. В механизме CRD (Custom Resource Definition) для IngressRouteTCP сервисов не применялся белый список crossProviderNamespaces, который ограничивает ссылки на ресурсы из других провайдеров. Для HTTP-сервисов такая проверка выполнялась, а для TCP-сервисов - нет. Злоумышленник с низкими привилегиями, работающий в пространстве имён, не входящем в crossProviderNamespaces, мог указать в сервисной записи IngressRouteTCP ссылку на serversTransport из файлового провайдера. Это позволяло использовать настройки транспорта, содержащие привилегированные клиентские сертификаты mTLS, идентификаторы SPIFFE или параметры PROXY-протокола. Исправление добавило проверку crossProviderNamespaces и для TCP-сервисов. Уязвимость оценивается как средняя (CVSS 6.9) и требует наличия низких привилегий в кластере.

Третья проблема (GHSA-qq9q-x9w4-chhj) затрагивает только версии Traefik 3.7.0-3.7.6 и связана с путаницей пространств имён в провайдере Kubernetes Gateway API. При обработке HTTPRoute, когда в правилах маршрута используется extensionRef для подключения middleware, Traefik ошибочно определял пространство имён ресурса middleware, исходя из пространства имён сервиса из поля backendRef, а не из самого HTTPRoute. Автор маршрута, имеющий ReferenceGrant для кросс-пространственного сервиса, мог таким образом привязать middleware из чужого пространства имён без отдельного разрешения. Если такой middleware устанавливает доверенные заголовки идентификации для обратного прокси, нижележащие приложения получат подставное состояние аутентификации. Исправление заставляет Traefik разрешать extensionRef относительно пространства имён HTTPRoute. Уязвимость также оценена как средняя (CVSS 6.9) и требует низких привилегий.

Все три уязвимости были обнаружены внутренними исследователями команды Traefik и зарегистрированы в системе GitHub Security Advisories. К настоящему моменту не известно о случаях эксплуатации этих проблем в реальных атаках, однако для организаций, использующих Traefik в качестве шлюза доступа к микросервисам, риски высоки. Особенно это касается уязвимости в ReplacePathRegex, которая может быть использована удалённо без какой-либо аутентификации.

Разработчики рекомендуют всем пользователям как можно скорее обновить Traefik до версий 2.11.52, 3.6.23 или 3.7.7 (в зависимости от используемой ветки). В качестве временных мер для снижения риска можно отключить middleware ReplacePathRegex, если он не используется, или тщательно проверять регулярные выражения для замены путей. Для версий 3.0 и выше также стоит пересмотреть конфигурацию crossProviderNamespaces и убедиться, что проверка применяется ко всем типам сервисов. Выпуск патча для Gateway API ограничен версией 3.7.7. Обновление является единственным полным устранением проблем.

Тенденция к обнаружению уязвимостей, связанных с неполной проверкой путей и пространств имён, сохраняется в Kubernetes-экосистеме. Traefik последовательно закрывает такие сценарии, что подчёркивает сложность безопасной разработки в условиях многоуровневой конфигурации микросервисов.

Ссылки

Комментарии: 0