Критическая уязвимость в Ingress NGINX Controller позволяет выполнять удаленный код без аутентификации
24 марта 2025 года была обнародована серия из пяти критических уязвимостей в Ingress NGINX Controller для Kubernetes, которые могут привести к выполнению удаленного кода без аутентификации. Эти уязвимости подвергают риску более 6,500 кластеров, так как компонент оказывается доступным через публичный интернет.
Уязвимости (CVE-2025-24513, CVE-2025-24514, CVE-2025-1097, CVE-2025-1098 и CVE-2025-1974) получили общий рейтинг CVSS 9.8 и были названы IngressNightmare компанией Wiz, специализирующейся на облачной безопасности. Важно отметить, что эти уязвимости не затрагивают NGINX Ingress Controller, который является другой реализацией контроллера входа для NGINX и NGINX Plus.
В чем суть уязвимости?
IngressNightmare затрагивает компонент admission controller в Ingress NGINX Controller для Kubernetes. Около 43% облачных сред подвержены этим уязвимостям. Ingress NGINX Controller использует NGINX в качестве обратного прокси и балансировщика нагрузки, что позволяет открывать HTTP и HTTPS маршруты извне кластера для внутренних сервисов.
Уязвимость использует тот факт, что admission controllers, развернутые внутри Kubernetes pod, доступны через сеть без аутентификации. Конкретно, она позволяет внедрить произвольную конфигурацию NGINX удаленно, отправив вредоносный объект ingress (также известный как AdmissionReview requests) непосредственно в admission controller. Это приводит к выполнению кода в pod Ingress NGINX Controller.
Какие уязвимости обнаружены?
- CVE-2025-24513 (CVSS score: 4.8) – Некорректная проверка ввода, которая может привести к перемещению по каталогам внутри контейнера, что в свою очередь может вызвать отказ в обслуживании (DoS) или ограниченное раскрытие секретных объектов кластера при комбинировании с другими уязвимостями.
- CVE-2025-24514 (CVSS score: 8.8) – Аннотация auth-url Ingress может быть использована для внедрения конфигурации в NGINX, что приводит к выполнению произвольного кода в контексте контроллера ingress-nginx и раскрытию секретов, доступных контроллеру.
- CVE-2025-1097 (CVSS score: 8.8) – Аннотация auth-tls-match-cn Ingress может быть использована для внедрения конфигурации в NGINX, что приводит к выполнению произвольного кода в контексте контроллера ingress-nginx и раскрытию секретов, доступных контроллеру.
- CVE-2025-1098 (CVSS score: 8.8) – Аннотации mirror-target и mirror-host Ingress могут быть использованы для внедрения произвольной конфигурации в NGINX, что приводит к выполнению произвольного кода в контексте контроллера ingress-nginx и раскрытию секретов, доступных контроллеру.
- CVE-2025-1974 (CVSS score: 9.8) – Неаутентифицированный злоумышленник с доступом к сети pod может выполнить произвольный код в контексте контроллера ingress-nginx при определенных условиях.
Как защититься?
После ответственного раскрытия уязвимости, они были устранены в версиях Ingress NGINX Controller 1.12.1, 1.11.5 и 1.10.7. Пользователям рекомендуется как можно скорее обновиться до последней версии и убедиться, что конечная точка admission webhook не доступна извне.
В качестве временных мер рекомендуется ограничить доступ к admission controller только для Kubernetes API Server и временно отключить компонент admission controller, если он не используется.
Эти меры помогут защитить ваши кластеры от потенциальных атак и предотвратить несанкционированный доступ к секретам и данным.