
# 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](https://nvd.nist.gov/vuln/detail/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控制器插件版本发布记录](https://support.huaweicloud.com/bulletin-cce/cce_bulletin_0043.html)。
#### 判断方法
1. 前往插件中心，查看是否已安装NGINX Ingress控制器插件以及插件版本。
   图1查看已安装插件版本   
   ![](https://support.huaweicloud.com/bulletin-cce/zh-cn_image_0000002689873205.png "点击放大")
   
   
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：
   ![](https://support.huaweicloud.com/bulletin-cce/zh-cn_image_0000002659793786.png "点击放大")
   执行以下命令查看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授权）](https://support.huaweicloud.com/usermanual-cce/cce_10_0189.html)。
若排查结果显示符合漏洞触发条件，可以通过修改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控制器插件版本发布记录](https://support.huaweicloud.com/bulletin-cce/cce_bulletin_0043.html)。
#### 相关链接
NGINX 官方安全通告：<https://nginx.org/en/security_advisories.html>
