问题详情
在ingress-nginx中发现一个安全问题,可以创建或更新ingress对象的用户可以使用Ingress对象中的.metadata.annotations
(在networking.k8s.io
或extensions
API组中)来获取ingress-nginx控制器的凭证。在默认配置中,该凭证可以访问集群中的所有secrets。
该问题已被评为高等级 (CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:L/A:L)
, 并指定了 CVE-2021-25746
。
受影响的组件和配置
这个错误影响了ingress-nginx。如果你的集群上没有安装ingress-nginx,你就不会受到影响。你可以通过运行kubectl get po -n ingress-nginx
来检查。
非管理员用户有权限创建Ingress对象的多租户环境受此问题影响最大。
受影响的版本
- <v1.2.0
修复的版本
- v1.2.0-beta.0
- v1.2.0
缓解
如果你无法升级修复,可以通过实施限制metadata.annotations
值为已知安全值的准入策略来缓解这一漏洞(见新增加的规则,或annotation-value-word-blocklist的建议值)。
检测
如果您发现该漏洞已被利用的证据,请联系 security@kubernetes.io
额外细节
有关更多详细信息,请参阅 ingress-nginx 问题 #8503
。
致谢
此漏洞由 Anthony Weems 和 jeffrey&oliver 分别报告。