2023年10月25日,美国国家标准与技术研究院(NIST)报告了3个影响NGINX Ingress Controller for Kubernetes的CVE:
- CVE-2022-4886:使用
log_format指令可绕过ingress-nginx路径清理机制。 - CVE-2023-5043,ingress-nginx 注解注入会导致任意命令执行。
- CVE-2023-5044:通过nginx.ingress.kubernetes.io/permanent-redirect注解发生代码注入。
该报告及后续发布的文章(例如《紧急:Kubernetes版NGINX Ingress Controller中发现新的安全漏洞》)引发了一些困惑(以及大量支持咨询),主要涉及哪些NGINX Ingress Controller实际受到影响,以及哪些用户需要关注并处理这些CVE所述的漏洞。
出现这种困惑完全可以理解。您是否知道,基于NGINX的Ingress控制器不止一种?首先,有两个完全不同的项目都名为“NGINX Ingress Controller”:
- 社区项目:此Ingress控制器位于GitHub上的kubernetes/ingress-nginx代码仓库中,基于NGINX Open Source数据平面,但由Kubernetes社区开发和维护,文档托管在GitHub上。
- NGINX项目,位于GitHub上的nginxinc/kubernetes-ingress代码库中。NGINX Ingress Controller由F5 NGINX开发和维护,相关文档托管在docs.nginx.com。这一NGINX官方项目提供两个版本:
- 基于 NGINX Open Source(免费开源选项)
- 基于NGINX Plus(商业选项)
此外,还有其他基于NGINX的Ingress控制器,例如Kong。好在它们的名称很容易区分。如果不确定正在使用哪一个,请检查运行中的Ingress控制器所使用的容器镜像,然后将Docker镜像名称与上面列出的代码仓库进行比较。
上述漏洞(CVE-2022-4886、CVE-2023-5043和CVE-2023-5044)仅影响社区项目(kubernetes/ingress-nginx)。NGINX Ingress Controller的NGINX项目(nginxinc/kubernetes-ingress,包括开源版和商业版)不受这些CVE影响。
要进一步了解NGINX Ingress Controller与其他Ingress控制器项目之间的区别,请阅读我们的博客文章《Ingress控制器选择指南(第4部分):NGINX Ingress Controller选项》。
关于作者

相关博客文章
NGINX Plus R26 正式发布
NGINX Plus R26通过缓存JSON Web密钥集加快JWT验证,并强化TLS握手,从而提升安全性。NGINX JavaScript的新功能包括增强对异步函数的支持,以及实现WebCrypto API。
使用NGINX App Protect DoS保护gRPC应用,抵御严重的DoS攻击
gRPC具备开发人员设计和部署现代应用所需的速度与灵活性,但其开放性也使其极易受到第7层DoS攻击。NGINX App Protect DoS可保护gRPC应用免受此类破坏性攻击。
Ingress Controller 选型指南(第 2 部分):风险与面向未来的规划
了解选择错误的Ingress控制器可能带来的风险,以及如何从关键方面着手,让您的选择更好地适应未来需求。
NGINX Plus R19 正式发布
NGINX Plus R19扩展了监控功能,不仅提供更多指标,还新增了指标分析方式;增加试运行模式,用于测试限速效果;增强键值存储,以支持IP地址范围;并使限速更加动态。
NGINX现已正式加入F5
NGINX现已正式成为F5的一部分。Gus Robertson现任F5 NGINX业务部门负责人。他阐述了两家公司在人才、文化和愿景方面融合的价值,以及双方将如何携手增强NGINX的开源产品和商业产品。
