Выявлены критические уязвимости в Ingress NGINX для K8s: пользователи Deckhouse Kubernetes Platform в безопасности

от автора

В конце марта 2025 года в Ingress NGINX Controller обнаружили сразу несколько критических уязвимостей, получивших кодовое название IngressNightmare. По оценкам Wiz, этим уязвимостям подвержено около 43 % облачных окружений. Проблема настолько серьёзна, что злоумышленник, имея доступ к admission webhook, может получить контроль над кластером Kubernetes, прочитав все секреты. Эксперты Kubernetes присвоили этой проблеме критический уровень опасности.

Команда Deckhouse быстро отреагировала на ситуацию, выпустив патчи для версий Deckhouse Kubernetes Platform (DKP) на второй день после обнаружения уязвимостей. Это позволило автоматически обновить кластеры пользователей с включённым автообновлением.

Уязвимости и их последствия. Реакция разработчиков

Уязвимости связаны с admission controller в Ingress NGINX. По умолчанию admission controllers доступны по сети без аутентификации, что делает их привлекательной целью для атак. Проблема в том, что вредоносный Ingress-объект, отправленный в admission webhook, позволяет внедрить произвольную конфигурацию NGINX. В результате NGINX validator выполняет код, и злоумышленник получает возможность выполнять команды от лица ingress-controller`а, а значит, получить доступ, например, к прикладным секретам в кластере.

Если управляющий порт ingress-controller’а, на котором работает admission webhook, доступен извне, это может стать прямым путём для взлома. Wiz нашли более 6500 кластеров с публичным доступом к ingress-controller’у.

На следующий день после обнаружения уязвимостей разработчики Ingress NGINX выпустили обновления версий 1.12.1 и 1.11.5, устраняющие эти уязвимости. При этом для полного исправления им пришлось отключить проверку сгенерированной конфигурации NGINX во время валидации Ingress-ресурсов. 

Реакция команды Deckhouse

Данные наших пользователей, использующих Deckhouse Stronghold, были в большей безопасности с самого начала. Если секреты хранились в хранилище Deckhouse Stronghold и доставлялись через модуль secrets-store-integration, то потенциальная эксплуатация уязвимости IngressNightmare представляла меньшую угрозу для таких пользователей как минимум потому, что злоумышленники не могли получить доступ к секретам.

Для Deckhouse Kubernetes Platform мы выпустили патч-версии 1.67.14 и 1.68.7.

В кластеры, в которых включён режим обновления Auto или AutoPatch, обновление было доставлено автоматически. Пользователям DKP не нужно вручную обновлять Ingress NGINX до новой версии или делать бэкпорт патча в более старую версию контроллера, для чего пришлось бы скачивать код и хранить собранную версию контроллера локально. 

Важно

Для исправления одной из уязвимостей (CVE-2025-1974) пришлось отказаться от валидации срендеренного конфига nginx.conf через вызов nginx -t. Поэтому если пользователь создаст Ingress-ресурс с проблемным сниппетом, то эта конфигурация применится и попадёт в контроллер, но он не сможет его применить и будет работать под старыми настройками. На этот случай в платформе предусмотрен алерт NginxIngressConfigTestFailed.

Для пользователей более старых версий DKP мы выпустили инструкцию по устранению уязвимости. Таким образом, мы обезопасили инфраструктуру наших клиентов в течение двух дней после выявления проблемы.

Команда Deckhouse напоминает: регулярно обновляйте любое используемое ПО и пользуйтесь возможностями гибкой настройки режимов обновлений в DKP.

P. S.

Читайте также новости компании:


ссылка на оригинал статьи https://habr.com/ru/articles/896474/


Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *