Kubernetes社区披露了安全漏洞CVE-2024-7646。该漏洞允许具有创建Ingress对象的RBAC权限的用户(在networking.k8s.io
或 extensions
API组中)绕过Nginx Ingress Controller的Annotation校验,发起命令注入攻击,并可能获取Nginx Ingress Controller的凭据。攻击者可以通过该凭据访问集群中的Secrets密钥信息。
影响范围
下列版本的Nginx Ingress Controller组件均在漏洞影响范围内:
Nginx Ingress Controller < v1.11.2
Nginx Ingress Controller < v1.10.4
下列版本的Nginx Ingress Controller组件修复了该问题:
v1.11.2及以上版本
v1.10.4及以上版本
漏洞影响
该漏洞只影响安装和使用了Nginx Ingress Controller组件的集群。如果集群中没有安装该组件,则集群不受影响。
您可以通过以下命令,确认集群中是否安装了Nginx Ingress Controller组件。
kubectl get po -nkube-system -A| grep -E 'nginx-ingress-controller|ingress-nginx-controller'
如果集群中已经安装并使用了Nginx Ingress Controller组件,您可以在API Server的审计日志中查看Annotation (例如nginx.ingress.kubernetes.io/auth-tls-verify-client
)中是否包含回车符(\r)的Ingress实例创建日志,从而查找可疑的攻击事件。关于API Server审计日志的更多内容,请参见使用集群API Server审计功能。
解决方案
如果您的集群正在使用Nginx Ingress Controller组件,请您关注Nginx Ingress Controller的发布记录,及时升级到最新的漏洞修复版本。具体操作,请参见升级Nginx Ingress Controller组件。