nav-img
Advanced

Уведомление об уязвимостях 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

Уровень угрозы

Дата обнаружения

Исполнение кода

CVE-2025-1974

Критический

24.03.2025

Исполнение кода

CVE-2025-1097

Высокий

24.03.2025

Исполнение кода

CVE-2025-1098

Высокий

24.03.2025

Исполнение кода

CVE-2025-24514

Высокий

24.03.2025

Отказ в обслуживании

CVE-2025-24513

Средний

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

Проверить на наличие уязвимости

  1. Войдите в консоль управления Advanced:

  2. В списке сервисов выберите Cloud Container Engine.

  3. Нажмите на название кластера.

  4. В меню слева перейдите в раздел Add-ons.

  5. В разделе Network найдите NGINX Ingress Controller.

  6. Нажмите Manage.

  7. Проверьте версию Add-on:

    Версия NGINX Ingress

    Add-on версии 3.0.32 или ниже, подвержен указанным выше уязвимостям.

Решение

До выхода обновления рекомендуем принять следующие меры для минимизации возможных рисков:


Устранение уязвимости затрагивает CCE-кластеры версии 1.25 и выше. Если версия вашего кластера ниже 1.25, обновите кластер (en).

Чтобы минимизировать риски, связанные с CVE-2025-1974, отключите опцию Admission Check. Рекомендуем выполнять работы в часы наименьшей нагрузки.

Чтобы отключить Admission Check:

  1. Войдите в консоль управления Advanced:

  2. В списке сервисов выберите Cloud Container Engine.

  3. Нажмите на название кластера.

  4. В меню слева перейдите в раздел Add-ons.

  5. В разделе Network найдите NGINX Ingress Controller.

  6. Нажмите Manage.

  7. Нажмите Edit:

    Изменить настройки NGINX Ingress Controller
  8. Отключите опцию Admission Check.

  9. Нажмите OK и дождитесь, когда статус Upgrading изменится на исходный.

Установить Open Source Ingress-Nginx Controller

В качестве дополнительной меры рядом с существующим расширением можно установить Open Source-версию Ingress-Nginx Controller. Для этого:

  1. Установите Ingress-Nginx Controller:

    helm repo add nginx-ingress https://kubernetes.github.io/ingress-nginx
    helm repo update
  2. Проверьте, что установлена последняя исправленная версия 1.12.1, выполнив команду:

    helm search repo nginx-ingress

    Пример вывода:

    NAME CHART VERSION APP VERSION DESCRIPTION
    nginx-ingress/ingress-nginx 4.12.1 1.12.1 Ingress controller for Kubernetes using NGINX a...
  3. Импортируйте файл values.yaml стандартной конфигурации Helm-чарта:

    helm show values ingress-nginx --repo https://kubernetes.github.io/ingress-nginx > values.yaml
  4. Отредактируйте файл values.yaml в соответствии с вашими требованиями.

    Внимание

    При установке нескольких NGINX Ingress-контроллеров название каждого должно быть уникальным в кластере. Оно задается в следующем блоке:

    ingressClassResource:
    # -- Name of the IngressClass
    name: nginx

    При необходимости измените название.

  5. Добавьте привязку к Elastic Load Balance. Примеры:


    kubernetes.io/elb.class: union
    kubernetes.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

    Подробнее об использовании аннотаций для ELB (en)

  6. Выполните команду:

    kubectl create ns nginx-ingress
  7. Выполните команду:

    helm install nginx-ingress nginx-ingress/ingress-nginx -n nginx-ingress -f values.yaml
  8. Чтобы переключить трафик на установленный Ingress-Nginx Controller, отвяжите Elastic IP от ELB, привязанного к Add-on NGINX Ingress Controller, и привяжите его к новому контроллеру.

    Когда будет выпущена новая версия расширения NGINX Ingress Controller, переключите контроллер обратно таким же способом.