Ingress-nginx CVE-2025-1974:你需要知道什么
今天,ingress-nginx 的维护者发布了一批关键漏洞的补丁,这些漏洞可能使攻击者轻易接管你的 Kubernetes 集群:ingress-nginx v1.12.1 和 ingress-nginx v1.11.5。如果你是使用 ingress-nginx 的超过 40% 的 Kubernetes 管理员之一,你应该立即采取行动,保护你的用户和数据。
背景
Ingress 是 Kubernetes 用于将工作负载 Pod 暴露给外部世界以便它们发挥作用的传统功能。Kubernetes 用户可以以一种与实现无关的方式,定义他们的应用程序应如何在网络上可用。然后,Ingress 控制器会使用该定义,根据用户的具体情况和需求,设置所需的本地或云资源。
有许多不同的 Ingress 控制器可供选择,以适应不同云提供商或负载均衡器品牌的用户。Ingress-nginx 是 Kubernetes 项目提供的一个纯软件的 Ingress 控制器。由于其多功能性和易用性,ingress-nginx 非常受欢迎:它被部署在超过 40% 的 Kubernetes 集群中!
Ingress-nginx 将 Ingress 对象中的需求转换为 nginx(一个强大的开源 Web 服务器守护进程)的配置。然后,nginx 使用该配置来接受请求并将其路由到 Kubernetes 集群内运行的各种应用程序。正确处理这些 nginx 配置参数至关重要,因为 ingress-nginx 需要在允许用户具有显著灵活性的同时,防止他们无意或有意地诱使 nginx 去做它不该做的事情。
今日修复的漏洞
今天发布的四个 ingress-nginx 漏洞是对 ingress-nginx 处理特定 nginx 配置片段方式的改进。如果没有这些修复,一个特制的 Ingress 对象可能导致 nginx 出现各种异常行为,包括泄露 ingress-nginx 可访问的 Secrets 的值。默认情况下,ingress-nginx 可以访问整个集群的所有 Secrets,因此这通常会导致任何有权创建 Ingress 的用户或实体完全接管集群。
今天最严重的漏洞是 CVE-2025-1974,评级为 9.8 CVSS,它允许 Pod 网络上的任何实体通过 ingress-nginx 的 Validating Admission Controller 功能利用配置注入漏洞。这使得这类漏洞的危险性大大增加:通常情况下,利用这些漏洞需要能够在集群中创建 Ingress 对象,这是一个相当高的权限操作。当与今天的其他漏洞结合时,CVE-2025-1974 意味着 Pod 网络上的任何实体都有很大可能接管你的 Kubernetes 集群,而无需任何凭证或管理权限。在许多常见场景中,Pod 网络对你云 VPC 中的所有工作负载,甚至连接到你公司网络的任何人都是可访问的!这是一个非常严重的情况。
今天,我们发布了 ingress-nginx v1.12.1 和 ingress-nginx v1.11.5,其中包含了针对所有这五个漏洞的修复。
你的下一步行动
首先,确定你的集群是否正在使用 ingress-nginx。在大多数情况下,你可以使用集群管理员权限运行 kubectl get pods --all-namespaces --selector app.kubernetes.io/name=ingress-nginx
来检查。
如果你正在使用 ingress-nginx,请立即制定计划修复这些漏洞。
最好、最简单的补救措施是升级到 ingress-nginx 的新补丁版本。 安装今天的补丁可以修复所有五个漏洞。
如果你无法立即升级,可以通过关闭 ingress-nginx 的 Validating Admission Controller 功能来显著降低风险。
- 如果你是使用 Helm 安装的 ingress-nginx
- 重新安装,设置 Helm 值
controller.admissionWebhooks.enabled=false
- 重新安装,设置 Helm 值
- 如果你是手动安装的 ingress-nginx
- 删除名为
ingress-nginx-admission
的 ValidatingWebhookconfiguration - 编辑
ingress-nginx-controller
的 Deployment 或 Daemonset,从控制器容器的参数列表中移除--validating-webhook
- 删除名为
如果你关闭了 Validating Admission Controller 功能作为 CVE-2025-1974 的缓解措施,请记得在升级后重新启用它。该功能为你的用户提供了重要的生活质量改进,能在不正确的 Ingress 配置生效前向他们发出警告。
结论、致谢和进一步阅读
今天公布的 ingress-nginx 漏洞,包括 CVE-2025-1974,对许多 Kubernetes 用户及其数据构成了严重风险。如果你使用 ingress-nginx,应该立即采取行动以确保安全。
感谢来自 Wiz 的 Nir Ohfeld、Sagi Tzadik、Ronen Shustin 和 Hillai Ben-Sasson 负责任地披露了这些漏洞,并与 Kubernetes SRC 成员和 ingress-nginx 维护者(Marco Ebert 和 James Strong)合作,以确保我们有效地修复了它们。
有关 ingress-nginx 维护和未来的更多信息,请参阅此 GitHub issue 和/或参加 James 和 Marco 在 KubeCon/CloudNativeCon EU 2025 上的演讲。
有关本文中讨论的具体漏洞的更多信息,请参阅相应的 GitHub issue:CVE-2025-24513、CVE-2025-24514、CVE-2025-1097、CVE-2025-1098 或 CVE-2025-1974
这篇博文于 2025 年 5 月修订,以更新超链接。