Уведомление об уязвимостях NGINX Ingress Controller
Сообществом Kubernetes было выявлено пять уязвимостей в NGINX Ingress-контроллере, которые потенциально могут позволить злоумышленникам запускать несанкционированный код или прерывать работу сервисов
Выпуск обновленной версии расширения NGINX Ingress Controller с устранением указанных ниже уязвимостей запланирован на май 2025 года.
Список уязвимостей:
CVE-2025-1974 (High) — в определенных условиях неаутентифицированные злоумышленники могут получить доступ к сети пода и выполнить произвольный код в контексте NGINX Ingress Controller.
Уязвимость может привести к утечке конфиденциальной информации.
CVE-2025-1097 (High) — аннотация «auth-tls-match-cn» в объектах Ingress может быть использована для внедрения произвольной конфигурации в NGINX.
Уязвимость может привести к выполнению произвольного кода в контексте NGINX Ingress Controller и раскрытию секретов, доступных контроллеру.
CVE-2025-1098 (High) — аннотации «mirror-target» и «mirror-host» в объектах Ingress могут быть использованы для внедрения произвольной конфигурации в NGINX.
Уязвимость может привести к выполнению произвольного кода в контексте NGINX Ingress Controller и раскрытию секретов, доступных контроллеру.
CVE-2025-24514 (High) — аннотация «auth-url» в объектах Ingress может быть использована злоумышленником для внедрения конфигурации в NGINX.
Уязвимость может привести к выполнению произвольного кода в контексте NGINX Ingress Controller и раскрытию секретов, доступных контроллеру.
CVE-2025-24513 (Medium) — возможность внедрения вредоносных данных в название файла с помощью Admission Controller, что позволит выполнить обход каталога (directory traversal) внутри контейнеров.
В сочетании с другими уязвимостями потенциально может привести к отказу в обслуживании (DoS) или к частичному раскрытию секретов.
Описание
Тип |
CVE-ID |
Уровень угрозы |
Дата обнаружения |
---|---|---|---|
Исполнение кода |
Критический |
24.03.2025 |
|
Исполнение кода |
Высокий |
24.03.2025 |
|
Исполнение кода |
Высокий |
24.03.2025 |
|
Исполнение кода |
Высокий |
24.03.2025 |
|
Отказ в обслуживании |
Средний |
24.03.2025 |
Влияние
Уязвимости затрагивают NGINX Ingress Controller и соответствующий CCE Add-on следующих версий:
Community-версия Nginx Ingress |
Версия расширения CCE NGINX Ingress Controller |
---|---|
v1.11.0 и ниже |
2.6.53 и ниже |
v1.11.0–v1.11.4 |
3.0.8 и 3.0.31 |
v1.12.0 |
— |
Проверить на наличие уязвимости
Войдите в консоль управления Advanced:
В списке сервисов выберите Cloud Container Engine.
Нажмите на название кластера.
В меню слева перейдите в раздел Add-ons.
В разделе Network найдите NGINX Ingress Controller.
Нажмите Manage.
Проверьте версию Add-on:
Add-on версии 3.0.32 или ниже, подвержен указанным выше уязвимостям.
Решение
До выхода обновления рекомендуем принять следующие меры для минимизации возможных рисков:
Устранение уязвимости затрагивает CCE-кластеры версии 1.25 и выше. Если версия вашего кластера ниже 1.25, обновите кластер (en).
Чтобы минимизировать риски, связанные с CVE-2025-1974, отключите опцию Admission Check. Рекомендуем выполнять работы в часы наименьшей нагрузки.
Чтобы отключить Admission Check:
Войдите в консоль управления Advanced:
В списке сервисов выберите Cloud Container Engine.
Нажмите на название кластера.
В меню слева перейдите в раздел Add-ons.
В разделе Network найдите NGINX Ingress Controller.
Нажмите Manage.
Нажмите Edit:
Отключите опцию Admission Check.
Нажмите OK и дождитесь, когда статус Upgrading изменится на исходный.
Установить Open Source Ingress-Nginx Controller
В качестве дополнительной меры рядом с существующим расширением можно установить Open Source-версию Ingress-Nginx Controller. Для этого:
Установите Ingress-Nginx Controller:
helm repo add nginx-ingress https://kubernetes.github.io/ingress-nginxhelm repo updateПроверьте, что установлена последняя исправленная версия 1.12.1, выполнив команду:
helm search repo nginx-ingressПример вывода:
NAME CHART VERSION APP VERSION DESCRIPTIONnginx-ingress/ingress-nginx 4.12.1 1.12.1 Ingress controller for Kubernetes using NGINX a...Импортируйте файл values.yaml стандартной конфигурации Helm-чарта:
helm show values ingress-nginx --repo https://kubernetes.github.io/ingress-nginx > values.yamlОтредактируйте файл values.yaml в соответствии с вашими требованиями.
ВниманиеПри установке нескольких NGINX Ingress-контроллеров название каждого должно быть уникальным в кластере. Оно задается в следующем блоке:
ingressClassResource:# -- Name of the IngressClassname: nginxПри необходимости измените название.
Добавьте привязку к Elastic Load Balance. Примеры:
kubernetes.io/elb.class: unionkubernetes.io/elb.autocreate: '{"type": "public","bandwidth_name": "cce-bandwidth","bandwidth_chargemode": "bandwidth","bandwidth_size": 100,"bandwidth_sharetype": "PER","eip_type": "5_bgp"}'kubernetes.io/elb.enterpriseID: enterprise-project-id # ID Enterprise-проекта. Default project - 0Выполните команду:
kubectl create ns nginx-ingressВыполните команду:
helm install nginx-ingress nginx-ingress/ingress-nginx -n nginx-ingress -f values.yamlЧтобы переключить трафик на установленный Ingress-Nginx Controller, отвяжите Elastic IP от ELB, привязанного к Add-on NGINX Ingress Controller, и привяжите его к новому контроллеру.
Когда будет выпущена новая версия расширения NGINX Ingress Controller, переключите контроллер обратно таким же способом.