Kubernetes的NGINX Ingress控制器中存在三个未修补的高危安全漏洞,可能使攻击者能够从集群中窃取机密凭据。
这些漏洞包括:
CVE-2022-4886(CVSS分数:8.8)- 可绕过Ingress-nginx路径清理以获取Ingress-nginx控制器的凭据
CVE-2023-5043(CVSS评分:7.6)- Ingress-nginx注释注入导致任意命令执行
CVE-2023-5044(CVSS评分:7.6)- 通过nginx.ingress.kubernetes.io/permanent-redirect 注释进行代码注入
Kubernetes安全平台ARMO的首席技术官兼联合创始人Ben Hirschberg在谈到CVE-2023-5043和CVE-2023-5044时表示:“这些漏洞允许攻击者控制Ingress对象配置,从而从集群中窃取机密凭据。”
成功利用这些漏洞可能允许攻击者将任意代码注入Ingress控制器进程,并未经授权地访问敏感数据。
网络安全
CVE-2022-4886是由于“spec.rules[].http.paths[].path”字段缺乏验证而导致的,允许有权访问Ingress对象的攻击者从Ingress控制器中窃取Kubernetes API凭据。
Hirschberg指出:“在Ingress对象中,操作者可以定义将哪个传入HTTP路径路由到哪个内部路径。易受攻击的应用程序无法正确检查内部路径的有效性,它可能指向包含服务账户令牌的内部文件,该令牌是针对API服务器进行身份验证的客户端凭据。”
在没有修复的情况下,该软件的维护者已发布了缓解措施,包括启用“strict-validate-path-type”选项并设置–enable-annotation-validation标志,以防止创建具有无效字符的Ingress对象并执行额外的限制。
ARMO表示,将NGINX更新到版本1.19,并同时添加“–enable-annotation-validation”命令行配置,可以解决CVE-2023-5043和CVE-2023-5044。
Hirschberg说:“尽管它们指向不同的问题,但所有这些漏洞都源自相同的根本问题。”
“事实上,Ingress控制器在设计上可以访问TLS机密和Kubernetes API,这使得它们成为具有高权限范围的工作负载。此外,由于它们通常是面向公共互联网的组件,因此它们非常容易受到通过它们进入集群的外部流量的影响。”
原创文章,作者:首席安全官,如若转载,请注明出处:https://cncso.com/security-vulnerability-found-in-kubernetes-nginx-controller.html