近日,Kubernetes 的Ingress NGINX Controller 被曝出五个严重安全漏洞,这些漏洞可能导致未经身份验证的远程代码执行(RCE),使超过 6,500 个集群面临直接风险。这些漏洞由云安全公司 Wiz 发现,并统称为“IngressNightmare”。值得注意的是,这些漏洞并不影响 NGINX Ingress Controller,后者是 NGINX 和NGINX Plus 的另一种实现。
Wiz 在报告中指出:“利用这些漏洞,攻击者可以未经授权访问 Kubernetes 集群中所有命名空间存储的机密信息,进而可能导致集群被完全接管。”
这些漏洞的核心问题在于 Kubernetes 的Ingress NGINX Controller 的准入控制器(Admission Controller)组件。据统计,约 43%的云环境可能受到这些漏洞的影响。
Ingress NGINX Controller 使用 NGINX 作为反向代理和负载均衡器,允许从集群外部访问内部的 HTTP 和HTTPS 路由。漏洞的根源在于,部署在 Kubernetes Pod 中的准入控制器可以通过网络访问,且无需身份验证。
具体而言,攻击者可以通过向准入控制器发送恶意的 Ingress 对象(即 AdmissionReview 请求),远程注入任意的 NGINX 配置,从而在 Ingress NGINX Controller 的Pod 上执行代码。
Wiz 解释道:“准入控制器的高权限和无限制的网络访问性为攻击者提供了关键的提权路径。利用这一漏洞,攻击者可以执行任意代码并访问集群中所有命名空间的机密信息,最终可能导致集群被完全接管。”
以下是五个漏洞的详细信息:
-
CVE-2025-24513(CVSS 评分:4.8):输入验证不当漏洞,可能导致容器内的目录遍历,结合其他漏洞可引发拒绝服务(DoS)或有限披露集群中的机密信息。
-
CVE-2025-24514(CVSS 评分:8.8):通过 auth-url Ingress 注解注入 NGINX 配置,导致在 Ingress NGINX Controller 上下文中执行任意代码并访问控制器可访问的机密信息。
-
CVE-2025-1097(CVSS 评分:8.8):通过 auth-tls-match-cn Ingress 注解注入 NGINX 配置,导致在 Ingress NGINX Controller 上下文中执行任意代码并访问控制器可访问的机密信息。
-
CVE-2025-1098(CVSS 评分:8.8):通过 mirror-target 和mirror-host Ingress 注解注入任意 NGINX 配置,导致在 Ingress NGINX Controller 上下文中执行任意代码并访问控制器可访问的机密信息。
-
CVE-2025-1974(CVSS 评分:9.8):在特定条件下,未经身份验证的攻击者可通过访问 Pod 网络在 Ingress NGINX Controller 上下文中执行任意代码。
在实验性攻击场景中,攻击者可以利用 NGINX 的client-body buffer 功能将恶意共享库上传到 Pod,然后向准入控制器发送 AdmissionReview 请求。该请求包含上述配置指令注入之一,导致共享库被加载,从而实现远程代码执行。
Wiz 云安全研究员 Hillai Ben-Sasson 表示:“攻击链的核心在于注入恶意配置,并利用其读取敏感文件和执行任意代码。这可能导致攻击者滥用高权限服务账户读取 Kubernetes 机密信息,最终实现集群接管。”
Kubernetes 安全响应委员会在独立公告中指出,除 CVE-2025-1974 外,其他漏洞均涉及 Ingress NGINX 处理某些配置参数的改进。而 CVE-2025-1974 可与其他漏洞结合,无需凭证或管理员权限即可实现集群接管。
在负责任披露后,这些漏洞已在 Ingress NGINX Controller 的1.12.1 、1.11.5 和1.10.7 版本中修复。建议用户尽快更新到最新版本,并确保准入 Webhook 端点未对外暴露。
作为缓解措施,建议:
-
限制仅 Kubernetes API 服务器可访问准入控制器。
-
如果不需要,可暂时禁用准入控制器组件。
原文始发于微信公众号(FreeBuf):Ingress-nginx漏洞可能导致Kubernetes集群被接管
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论