Kubernetes Ingress NGINX 控制器严重未认证远程代码执行漏洞
摘要
Wiz Research 在 Kubernetes 的 Ingress NGINX 控制器中发现了多个严重的未认证远程代码执行(RCE)漏洞,统称为 IngressNightmare。这些漏洞使攻击者无需认证即可在 Ingress NGINX 控制器的 Pod 中执行任意命令。因此,攻击者可能未经授权访问 Kubernetes 集群中所有命名空间存储的密钥,最终导致完全集群沦陷。利用这些漏洞会带来严重的安全风险,包括环境内的横向移动和数据泄露。已识别的漏洞包括:
- CVE-2025-1097:Ingress 对象验证不安全,允许远程命令注入。
- CVE-2025-1098:用户提供输入的处理不安全,导致任意命令执行。
- CVE-2025-24514:恶意 Ingress 对象允许任意 NGINX 配置注入。
- CVE-2025-1974:安全控制绕过,导致未经授权的命令执行。
受影响系统和/或应用
Ingress NGINX 控制器版本 1.12.1 和 1.11.5 之前均受影响。
技术细节
每个已识别的漏洞对 Kubernetes 环境构成独特风险:
-
CVE-2025-1097:通过未清理的
auth-tls-match-cn注解进行 Ingress NGINX 控制器配置注入。该漏洞源于对nginx.ingress.kubernetes.io/auth-tls-match-cn注解的不当处理。控制器未能充分清理此输入,允许攻击者注入任意 NGINX 配置。通过制作带有特殊格式auth-tls-match-cn注解的恶意 Ingress 对象,攻击者可以操纵 NGINX 配置以在 Ingress 控制器的 Pod 中执行未经授权的命令。 -
CVE-2025-1098:通过未清理的 Mirror 注解进行 Ingress NGINX 控制器配置注入。此问题是由于
nginx.ingress.kubernetes.io/mirror-target和nginx.ingress.kubernetes.io/mirror-host注解中的输入验证不足。攻击者可以通过这些注解注入恶意配置,导致在 NGINX 工作进程中执行任意命令。这可能导致未经授权访问 Pod,并可能访问集群范围的密钥。 -
CVE-2025-24514:通过未清理的 Auth-URL 注解进行 Ingress NGINX 控制器配置注入。该漏洞涉及
nginx.ingress.kubernetes.io/auth-url注解,该注解在纳入 NGINX 配置时未得到适当清理。攻击者可以制作带有特殊格式auth-url注解的恶意 Ingress 对象以注入任意 NGINX 指令。此注入可能导致在 Ingress 控制器的 Pod 中执行未经授权的命令。 -
CVE-2025-1974:Ingress NGINX 准入控制器远程代码执行。此严重漏洞允许具有 Pod 网络访问权限的未认证攻击者在 Ingress-NGINX 控制器中实现任意代码执行。利用此漏洞可能导致控制器可访问的密钥泄露,可能引发完全集群接管。
缓解与建议
-
立即升级:升级到 Ingress NGINX 控制器版本 1.12.1 或 1.11.5 或更高版本。
-
限制访问:确保准入 Webhook 端点未外部暴露。实施严格的网络策略以限制对准入控制器的访问,仅允许 Kubernetes API 服务器与其通信。
-
临时禁用:如果无法立即升级,考虑临时禁用准入控制器组件:
- 对于 Helm 安装:使用
controller.admissionWebhooks.enabled=false重新安装。 - 对于手动安装:删除名为
ingress-nginx-admission的 ValidatingWebhookConfiguration,并从 Ingress-NGINX 控制器的 Deployment 或 DaemonSet 的容器中移除–validating-webhook参数。 - 注意:升级后记得重新启用验证准入控制器,因为它为您的 Ingress 配置提供必要的保障。
- 对于 Helm 安装:使用
-
监控与审计:定期监控日志和网络流量以检测异常活动或未经授权的 Ingress 对象创建。特别观察:
- Ingress NGINX 控制器 Pod 内的异常进程执行。
- 控制器 Pod 发起的意外出站连接。
- 包含意外 Ingress 对象创建或修改的日志条目。
网络融合中心的行动
CFC 将继续监控情况,并在需要时发送咨询更新。需要立即采取行动,通过应用补丁、限制访问和加强安全监控来缓解潜在利用。组织应优先考虑这些措施,以保护其云环境免受潜在威胁。订阅我们漏洞扫描服务的客户将在扫描提供商提供相关插件后,立即收到扫描范围内发现的严重漏洞的相关结果。
参考
- https://www.wiz.io/blog/ingress-nginx-kubernetes-vulnerabilities
- Kubernetes 最佳实践:Kubernetes 文档
- NGINX Ingress 控制器更新:NGINX Ingress 控制器 GitHub 仓库