大家好,这里是小奏 ,觉得文章不错可以关注公众号小奏技术
发布时间
- 2025-03-24
背景
Kubernetes
是一种广泛使用的容器编排平台,Ingress
是其核心功能,用于将外部流量路由到内部服务。ingress-nginx
是一种流行的 Ingress
控制器,基于NGINX
服务器,负责处理HTTP
和 HTTPS
流量。它在Kubernetes
集群中非常常见,研究显示超过 40% 的集群使用它。
漏洞详情
最近,ingress-nginx
团队发布了五个漏洞的修复补丁,其中最关键的是CVE-2025-1974
,评级为CVSS 9.8
。这是一个严重的安全问题,允许未经身份验证的攻击者通过Pod
网络执行任意代码,控制 ingress-nginx
控制器。这可能导致敏感信息泄露,例如集群中的所有 Secrets。在默认配置下,控制器可以访问所有 Secrets,风险极高。
其他四个漏洞主要涉及 NGINX 配置处理,具体编号为
- CVE-2025-24513
- CVE-2025-24514: github.com/kubernetes/...
- CVE-2025-1097: github.com/kubernetes/...
- CVE-2025-1098: github.com/kubernetes/...
所有这些漏洞均已在补丁版本中修复。
风险与影响
Pod
网络是 Kubernetes
内部的通信网络,通常用于Pod
之间的交互。在理想情况下,Pod
网络是隔离的,但实际部署中,某些配置可能使其暴露于外部网络或公司网络。CVE-2025-1974
的关键点在于,攻击者若能访问Pod
网络,就可能利用漏洞执行代码,控制ingress-nginx
控制器。这可能导致集群完全被接管,严重威胁数据安全和用户隐私。
例如,在云环境或企业网络中,如果Pod
网络未正确隔离,攻击者可能通过漏洞访问所有Secrets
,进而获取敏感信息如API
密钥、数据库凭证等。这对使用ingress-nginx
的用户来说,风险不容小觑
检查与修复步骤
要检查是否受影响,可以运行以下命令:
shell
kubectl get pods --all-namespaces --selector app.kubernetes.io/name=ingress-nginx
如果返回相关 Pod,则说明使用ingress-nginx
修复步骤包括:
- 升级到补丁版本:升级到 ingress-nginx v1.12.1 或 v1.11.5,升级指南见 升级文档。
- 临时缓解措施:如果无法立即升级,可禁用 Validating Admission Controller:
- 对于 Helm 安装,设置
controller.admissionWebhooks.enabled=false
- 手动删除
ingress-nginx-admission ValidatingWebhookconfiguration
,并从ingress-nginx-controller
中移除 --validating-webhook` 参数。
- 对于 Helm 安装,设置
意外细节
一个值得注意的点是,ingress-nginx
项目计划进入维护模式,并推出新的 InGate
项目作为替代。这可能对长期用户产生影响,需关注未来迁移计划。