Выявлены критические уязвимости в Ingress Nginx для Kubernetes, позволяющие удалённо выполнять произвольный код

Специалисты компании Wiz выявили четыре критические уязвимости под названием IngressNightmare в контроллере Ingress Nginx для Kubernetes, позволяющие злоумышленникам удалённо выполнять произвольный код и получать контроль над кластерами.

Согласно описанию экспертов, этим проблемам присвоен критический уровень опасности. Злоумышленники с помощью уязвимостей CVE-2025-1097, CVE-2025-1098, CVE-2025-24514 и CVE-2025-1974 могут добиться выполнения своего кода на серверах облачных систем, использующих платформу Kubernete, и получить полный привилегированный доступ к кластеру Kubernete, включая действия:

  • отправить вредоносный объект в контроллер через внешнюю сеть;

  • внедрить произвольную конфигурацию Nginx;

  • заставить валидатор выполнить зловредный код, получив RCE.

В результате атакующий сможет: получить доступ ко всем секретам в кластере, полностью контролировать Kubernetes-кластер и имеет возможность модифицировать данные и инфраструктуру.

Примечательно, что выявившие проблемы исследователи отметили, что обнаруженные уязвимости затрагивают около 43% облачных окружений. Разработчики устранили эти уязвимости в версиях ingress-nginx 1.11.5 и 1.12.1. Если обновление системы установить невозможно, то системным администраторам предписывается ограничить доступ к контроллеру Ingress Nginx или временно отключить его.

Для проверки использования уязвимого ingress-nginx можно выполнить команду: kubectl get pods --all-namespaces --selector app.kubernetes.io/name=ingress-nginx.

Ingress‑контроллер выступает в роли шлюза и используется в Kubernetes для организации доступа из внешней сети к сервисам внутри кластера. Контроллер ingress‑nginx является наиболее популярным и применяет сервер Nginx для проброса обращений к кластеру, маршрутизации внешних запросов и балансировки нагрузки. Проект Kubernetes предоставляет базовые ingress‑контроллеры для AWS, GCE и nginx, последний из которых никак не связан с контроллером kubernetes‑ingress, сопровождением которого занимается компания F5/Nginx (рассматриваемые уязвимости не затрагивают проекты, развиваемые разработчиками Nginx, упоминание nginx в названии ingress‑nginx связано лишь с задействованием nginx в качестве прокси).

По информации OpenNET, уязвимости позволяют неаутентифицированному атакующему добиться выполнения своего кода в контексте контроллера ingress‑nginx, при возможности отправки запроса к web‑обработчику Admission. В ходе сканирования сети выявлено более 6500 уязвимых кластеров Kubernetes, использующих общедоступные уязвимые контроллеры с открытым для внешних запросов обработчиком Admission. В конфигурации по умолчанию запущенный атакующим код может получить доступ к настройкам объекта Ingress, в которых, среди прочего, хранятся и учётные данные для обращения к серверам Kubernetes, что позволяет добиться привилегированного доступа ко всему кластеру. В качестве обходного пути защиты рекомендуется отключить в ingress‑nginx функцию «Validating Admission Controller».

Выявленные Wiz уязвимости позволяют добиться подстановки своих настроек в nginx через отправку специально оформленного ingress‑объекта напрямую в контроллер Admission. Исследователи обнаружили, что некоторые свойства проверочных запросов, выставленные в поле «.request.object.annotations», напрямую подставляются в конфигурацию nginx. При этом сгенерированная конфигурация не применяется, а лишь тестируется путём запуска исполняемого файла «nginx» c опцией «‑t».

Материал опубликован при поддержке сайта habr.com
Комментарии

    Актуальные новости по теме "Array"