文档首页/ 云容器引擎 CCE/ 服务公告/ 漏洞公告/ NGINX Ingress控制器漏洞公告(CVE-2026-42533)
更新时间:2026-08-01 GMT+08:00
分享

NGINX Ingress控制器漏洞公告(CVE-2026-42533)

该漏洞是一个NGINX模块的堆缓冲区溢出漏洞,对于命中触发配置的NGINX服务,该漏洞会导致Worker进程崩溃并重启,造成DoS攻击。在特定条件下,攻击者还可能实现远程代码执行(RCE)。

Kubernetes社区Ingress NGINX控制器从v1.13.3开始使用NGINX 1.27.1,该版本位于CVE-2026-42533的受影响范围内

漏洞详情

表1 漏洞信息

漏洞类型

CVE-ID

漏洞级别

披露/发现时间

拒绝服务、RCE

CVE-2026-42533

严重

2026-07-15

漏洞影响

受漏洞影响的开源Ingress NGINX控制器版本范围如下:

  • ≤ v1.13.9
  • ≤ v1.14.5
  • ≤ v1.15.1

CCE服务的NGINX Ingress控制器插件版本5.0.17、6.0.33及以下均受该漏洞影响。CCE NGINX Ingress控制器插件与开源版本的对应关系参见NGINX Ingress控制器插件版本发布记录

判断方法

  1. 前往插件中心,查看是否已安装NGINX Ingress控制器插件以及插件版本。
    图1 查看已安装插件版本

  2. 若插件版本在5.0.17、6.0.33及以下,则受漏洞影响,按步骤3进一步排查,否则不受这些漏洞影响。
  3. 查看CCE NGINX Ingress控制器插件Pod中的nginx配置。

    执行以下命令查看已安装的CCE NGINX Ingress控制器插件Pod:

    kubectl get po -A|grep cceaddon-nginx-ingress|grep controller

    如下图所示,集群已安装了两个nginx ingress controller:

    执行以下命令查看nginx.conf中的rewrite配置:

    # 1. 进入NGINX Ingress Controller Pod 
    kubectl exec -it -n <ingress-namespace> <cceaddon-nginx-ingress-controller-pod-name> -- /bin/bash  
    
    # 2. 查看nginx.conf中是否存在可疑的map配置和rewrite规则组合 
    # 重点关注使用正则匹配的map指令,以及引用了$1, $2等捕获组的rewrite或set指令 
    cat /etc/nginx/nginx.conf | grep -E "map.*~|rewrite.*\$[0-9]|set.*\$[0-9]"

    输出的nginx rewrite配置满足以下条件可能触发漏洞:

    1. 包含map指令(使用~进行正则匹配)。
    2. 引用未命名捕获组(如 $1、$2)的rewrite或set指令。

漏洞消减方案

在修复之前,建议您按最小权限原则,只给予受信用户创建及管理Ingress的权限,详情请参见命名空间权限(Kubernetes RBAC授权)

若排查结果显示符合漏洞触发条件,可以通过修改Ingress的配置加固:

  1. 查看Ingress配置:
    kubectl get ingress -A -o yaml | grep -A 5 -B 5 "nginx.ingress.kubernetes.io/rewrite-target"
    kubectl get ingress -A -o yaml | grep -A 5 -B 5 "nginx.ingress.kubernetes.io/configuration-snippet"
  2. 使用命名捕获组:
    将所有配置中危险的rewrite和set指令组合中的“未命名捕获组”(如$1、$2)替换为“命名捕获组”(如 (?<name>...))
    apiVersion: networking.k8s.io/v1
    kind: Ingress
    metadata:
      name: safe-ingress
      annotations:
        # 使用命名捕获组 $path,并保留问号(命名捕获组可规避漏洞)
        nginx.ingress.kubernetes.io/rewrite-target: /new-path/$path?
        nginx.ingress.kubernetes.io/configuration-snippet: |
          set $my_var $uri;   # 仍然存在后续指令,但因使用了命名捕获组,漏洞被抑制
    spec:
      rules:
      - host: example.com
        http:
          paths:
          - path: /old/(?<path>.*)   # 定义命名捕获组 path
            pathType: Prefix
            backend:
              service:
                name: backend-svc
                port:
                  number: 80
  3. 参考第2步,修改Ingress资源的annotation中的nginx.ingress.kubernetes.io/configuration-snippet注释。

漏洞修复方案

CCE将发布新的NGINX Ingress控制器插件修复该漏洞,请留意NGINX Ingress控制器插件版本发布记录

相关链接

NGINX 官方安全通告:https://nginx.org/en/security_advisories.html

相关文档