nginx-ingress-controller CVE-2025-1097等漏洞修复
漏洞详情
CVE-2025-1097: 有Ingress资源写权限的攻击者可以通过Nginx Ingress社区提供的auth-tls-match-cn Annotation向Nginx注入配置,从而在ingress-nginx controller上下文中执行任意代码,并进一步获取整个集群维度的Secrets。
-
风险等级
- 高危
-
攻击条件
-
攻击者能访问Nginx Ingress Controller的 admission webhook 服务端口8443
-
影响范围
-
安装了Nginx Ingress Controller的集群,且Nginx Ingress Controller版本满足:
-
- Nginx Ingress Controller < 1.11.5
- Nginx Ingress Controller < 1.12.1
修复方案
因k8s版本还是1.20,因此只能通过缓解方案
进行修复。
方案一:避免 Nginx Ingress Controller的 admission webhook 服务暴露到公网。
方案二:关闭 Nginx Ingress Controller的 admission webhook 服务
- 通过kubectl edit命令编辑 Nginx Ingress Controller 的
Deployment
或者DaemonSet
,注释 containers.args 参数中的--validating-webhook=:8443
关闭webhook功能会导致ingress配置验证功能失效,Nginx Ingress Controller不会提前验证配置是否正确,如果新创建的ingress配置存在错误,Nginx Ingress Controller将无法载入新的配置。即使后续创建了正确的 Ingress 配置,也无法生效,直到错误的 Ingress 配置被修改
containers:
- args:
- /nginx-ingress-controller
- --publish-service=$(POD_NAMESPACE)/test2-controller
- --election-id=test2-leader
- --controller-class=guoliangjun.com/test2
- --ingress-class=nginx
- --configmap=$(POD_NAMESPACE)/test2-controller
# 注释此行,以关闭admission webhook功能
#- --validating-webhook=:8443
- --validating-webhook-certificate=/usr/local/certificates/cert
- --validating-webhook-key=/usr/local/certificates/key