Kubernetes 社区披露了 ingress-nginx 的安全漏洞 CVE-2024-7646。
ingress-nginx 是 Kubernetes 的 Ingress 控制器,使用 nginx 作为反向代理和负载均衡服务器。具有创建 Ingress 对象权限的参与者(在 networking.k8s.io 或 extensionsAPI 组中)可以绕过注释验证,在 nginx 配置文件中注入恶意配置。攻击者可以利用此漏洞来获取 ingress-nginx 控制器的凭据。在默认配置中,该凭据可以访问集群中的所有 secrets。
CVE-2024-7646 漏洞被评估为高危漏洞,在 CVSS 的评分为 8.8
v1.11.0 <= Ingress-nginx-controller < v1.11.2
Ingress-nginx-controller < v1.10.4
VKE 发布了修复该漏洞的 ingress-nginx-controller 版本,详见 ingress-nginx 发布记录。升级 ingress-nginx 组件前,请仔细阅读变更影响,以免对您的业务流量产生影响。对于【应用市场】安装的ingress-nginx,同步上线了v1.10.4-vke.1版本,用以修复该漏洞。
不升级 ingress-nginx 组件,可以通过以下方式缓解:
在 ingress-nginx 组件的 ConfigMap 中设置 .data.annotation-value-word-blocklist
为 "load_module,lua_package,_by_lua,location,root,proxy_pass,serviceaccount,{,},',\"
。根据关键词对 Ingress 对象 annotations 的值进行检测和拦截。
在集群中安装准入控制组件(例如 Kyverno、Gatekeeper),对 Ingress 对象的创建行为进行验证,阻断漏洞利用。
收敛创建 ingress 的权限,只给受信用户授权。
说明
社区在 ingress-nginx-controller v1.10.4 和 v1.11.2 版本上修复该漏洞,修复版本仅支持 1.26 及以上的 Kubernetes 版本。若 VKE 集群 Kubernetes 版本低于 1.26,请先升级集群。