24 березня 2025 р.
Исследователи из компании Wiz обнаружили критические уязвимости в Ingress-NGINX Controller, который широко используется в кластерах Kubernetes для маршрутизации входящего трафика. Данные уязвимости получили название IngressNightmare и позволяют злоумышленникам выполнять произвольный код в кластере, что может привести к компрометации всей системы. Разберем детали этих уязвимостей, способы их эксплуатации и методы защиты.
Что такое Ingress-NGINX Controller
Ingress-NGINX — это популярный контроллер Ingress, используемый для управления HTTP(S)-трафиком в кластерах Kubernetes. Он позволяет маршрутизировать запросы к различным сервисам внутри кластера, а также управлять доступом и безопасностью.
Однако из-за высокой популярности и широкого распространения он стал одной из ключевых целей для атак. В частности, контроллер использует admission controller, который обрабатывает входящие запросы перед их применением в кластере. Именно этот механизм стал уязвимым звеном, позволившим разработчикам Wiz обнаружить критические проблемы.
Описание уязвимостей
CVE-2025-1974 (CVSS 9.8) – Удаленное выполнение кода
Эта уязвимость позволяет атакующему выполнить произвольный код внутри кластера Kubernetes. Она возникает из-за некорректной обработки пользовательских аннотаций в ingress-объектах, что открывает возможность инъекции вредоносных команд.
CVE-2025-1097, CVE-2025-1098, CVE-2025-24514 (CVSS 8.8) – Инъекция конфигурации
Эти уязвимости связаны с обработкой входящих аннотаций в ресурсах Ingress. Злоумышленник может использовать их для изменения конфигурации маршрутизации, что может привести к утечке данных или атаке типа Man-in-the-Middle (MitM).
CVE-2025-24513 (CVSS 4.8) – Обход путей к файлам
Данная уязвимость средней степени тяжести позволяет атакующему получить доступ к конфиденциальным файлам в системе, обходя стандартные механизмы безопасности.
Как работают атаки?
Злоумышленники могут эксплуатировать данные уязвимости, отправляя специально сформированные ingress-объекты в контроллер. В результате они получают возможность:
- Выполнить произвольные команды в контейнере.
- Перенаправить трафик внутри кластера.
- Извлечь чувствительные данные, такие как токены аутентификации, секреты API и учетные данные пользователей.
Как защититься?
1. Обновление Ingress-NGINX Controller. Разработчики Kubernetes уже выпустили исправления в версиях 1.12.1 и 1.11.5. Рекомендуется немедленно обновить контроллер до одной из этих версий.
2. Ограничение доступа. Рекомендуется настроить сетевые политики так, чтобы доступ к admission controller был возможен только с сервера API Kubernetes. Это значительно снизит вероятность атаки.
3. Отключение admission controller (временное решение). Если обновление невозможно, можно временно отключить admission controller, что снизит риск эксплуатации уязвимости.
4. Мониторинг и аудит. Использование инструментов мониторинга, таких как Falco, Prometheus и Kubernetes Audit Logs, поможет обнаруживать подозрительную активность в кластере.
Как результат
Обнаруженные уязвимости в Ingress-NGINX Controller подчеркивают важность своевременного обновления Kubernetes и связанных компонентов. Рекомендуется немедленно принять меры по защите кластеров, следуя приведенным выше рекомендациям. Безопасность Kubernetes требует постоянного контроля и улучшения, чтобы избежать потенциальных угроз.