Kubernetes 的 Ingress NGINX Controller 中披露了五个严重的安全漏洞,可能导致未经认证的远程代码执行(RCE)。这些漏洞使得超过 6,500 个集群面临直接风险,因为它们将组件暴露在公共互联网上。
这些漏洞(CVE-2025-24513、CVE-2025-24514、CVE-2025-1097、CVE-2025-1098 和 CVE-2025-1974)的 CVSS 评分为 9.8,被云安全公司 Wiz 统称为 IngressNightmare。值得注意的是,这些漏洞并不影响 NGINX Ingress Controller,后者是 NGINX 和 NGINX Plus 的另一种入口控制器实现。
Wiz 在一份报告中表示:“利用这些漏洞,攻击者可以未经授权访问 Kubernetes 集群中所有命名空间存储的机密信息,从而导致集群被接管。”
漏洞影响范围与原理
IngressNightmare的核心问题在于影响了 Kubernetes Ingress NGINX Controller 的准入控制器组件。约 43% 的云环境可能受到这些漏洞的影响。
Ingress NGINX Controller 使用 NGINX 作为反向代理和负载均衡器,使得可以从集群外部暴露 HTTP 和 HTTPS 路由到集群内部的服务。
该漏洞利用了 Kubernetes Pod 中部署的准入控制器无需认证即可通过网络访问的特性。具体来说,攻击者可以通过直接向准入控制器发送恶意 Ingress 对象(即 AdmissionReview 请求),远程注入任意的 NGINX 配置,从而在 Ingress NGINX Controller 的 Pod 上执行代码。
Wiz 解释道:“准入控制器的高权限和无限制的网络访问性创造了一个关键的提权路径。利用此漏洞,攻击者可以执行任意代码并访问跨命名空间的所有集群机密信息,最终可能导致整个集群被接管。”
漏洞详情
以下是这些漏洞的具体信息:
- CVE-2025-24514– auth-url 注解注入
- CVE-2025-1097– auth-tls-match-cn 注解注入
- CVE-2025-1098– mirror UID 注入
- CVE-2025-1974– NGINX 配置代码执行
在实验性攻击场景中,威胁行为者可以通过利用 NGINX 的 client-body buffer 功能,将恶意负载以共享库的形式上传到 Pod,然后向准入控制器发送 AdmissionReview 请求。该请求包含上述配置指令注入之一,导致共享库被加载,从而实现远程代码执行。
Wiz 的云安全研究员 Hillai Ben-Sasson 告诉 The Hacker News,攻击链的核心在于注入恶意配置,并利用它读取敏感文件和运行任意代码。这可能会使攻击者滥用强大的服务账户,读取 Kubernetes 机密信息,最终实现集群接管。
修复建议与缓解措施
在负责任披露后,这些漏洞已在 Ingress NGINX Controller 的 1.12.1、1.11.5 和 1.10.7 版本中得到修复。建议用户尽快更新到最新版本,并确保准入 Webhook 端点不会对外暴露。
作为缓解措施,建议仅允许 Kubernetes API 服务器访问准入控制器,并在不需要时暂时禁用准入控制器组件。