Ingress-nginx CVE-2025-1974:你需要了解什么
今天,ingress-nginx 维护者发布了一批关键漏洞的补丁,这些漏洞可能使攻击者轻松控制您的 Kubernetes 集群。如果您是使用 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 可以访问的 Secret 的值。默认情况下,ingress-nginx 对集群范围内的所有 Secret 都具有访问权限,因此这通常会导致任何有权限创建 Ingress 的用户或实体完全控制集群。
今天最严重的漏洞,CVE-2025-1974,CVSS 评分为 9.8,允许 Pod 网络上的任何事物利用 ingress-nginx 的 Validating Admission Controller 功能中的配置注入漏洞。这使得此类漏洞远比通常更危险:通常需要能够在集群中创建 Ingress 对象,这是一个相当特权的操作。结合今天的其他漏洞,CVE-2025-1974 意味着 Pod 网络上的任何事物都有很大机会控制您的 Kubernetes 集群,无需凭据或管理访问权限。在许多常见场景中,Pod 网络对您的云 VPC 中的所有工作负载甚至连接到公司网络的任何人都是可访问的!这是一个非常严重的情况。
今天,我们发布了 ingress-nginx v1.12.1 和 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