最近曝光的 Ingress-NGINX “IngressNightmare” 漏洞,把 nginx‑ingress 再次推上风口浪尖,也给还停留在传统 Ingress 的集群敲了警钟。
下面从漏洞回顾、风险分析、短期修补,到如何借机迁移到 Gateway API,以及迁移前后的优劣对比,做一篇面向工程实践的技术梳理。
漏洞简要回顾:IngressNightmare(CVE‑2025‑1974)
- 严重程度:2025 年 3 月,研究者披露了 Ingress‑NGINX 控制器中的一组高危漏洞,统称 “IngressNightmare”。其中 CVE‑2025‑1974 CVSS 评分高达 9.8,被官方和多家安全厂商评为“严重”,影响大量 Kubernetes 集群。
- 漏洞原理:核心问题在于 Validating Admission Webhook。在验证 Ingress 对象时,控制器会根据对象和注解生成一份 NGINX 配置,并使用
nginx -t进行校验。这个过程中对注解和配置片段的过滤不足,允许攻击者注入任意 NGINX 指令,最终导致在控制器 Pod 上执行任意代码(RCE)。 - 攻击门槛低:只要攻击者能访问 Pod 网络中的 admission webhook(很多集群甚至将其暴露在公网),就可以通过未认证请求触发漏洞。这属于 未认证 RCE,极易被蠕虫或自动化攻击工具批量利用。
- 漏洞链:同一批披露中还包含数个高危注入类漏洞(如 CVE‑2025‑24514、CVE‑2025‑1097、CVE‑2025‑1098),整体被称为 IngressNightmare 漏洞链,攻击面远不止单一 CVE。
风险与影响:从 NGINX 到整个集群的接管
- 敏感信息泄露:一旦在 ingress‑nginx 控制器容器内获得 RCE,攻击者可以读取挂载到该 Pod 的所有 Kubernetes Secret。特别需要注意的是,NGINX Ingress Controller 通常拥有极高的权限(ClusterRole),需要读取集群中所有命名空间的 Secret 以获取 TLS 证书。这意味着 RCE 的后果不仅是当前 Namespace,而是全集群证书与凭据的彻底泄露。
- 流量劫持与篡改:控制器通常拥有对集群 Ingress 资源的读写权限。结合 RCE,攻击者能进一步篡改路由,把用户流量透明转发到攻击者控制的后端,实施中间人攻击或数据窃取。
- “一洞穿云”:多家安全厂商实测表明,在默认网络策略较宽松的集群中,攻击者只需拿到任意 Pod 的执行权限,即可横向访问 admission webhook,从而升级为集群级别的控制权。
短期止血方案:先补洞,再谈重构
在讨论 Gateway API 迁移之前,所有还在跑 ingress‑nginx 的集群需要立即做两件事: