CVE-2024-7598:命名空间终止期间通过竞争条件绕过网络限制
漏洞描述
CVSS 评分:CVSS:3.1/AV:A/AC:H/PR:N/UI:N/S:U/C:L/I:N/A:N - 低危 (3.1)
在 Kubernetes 中发现一个安全漏洞,在命名空间删除期间,恶意或已被攻陷的 Pod 可能绕过由网络策略(Network Policies)强制实施的网络限制。命名空间终止期间对象的删除顺序未定义,因此存在网络策略在其所保护的 Pod 被删除之前就被删除的可能性。这可能导致一个短暂的时期,在此期间 Pod 仍在运行并接受网络连接,但网络策略的限制却未生效。
我是否受影响?
所有依赖网络策略的集群都可能受到影响。运行以下命令以查看是否正在使用网络策略:
|
|
受影响版本
kube-apiserver >= v1.3
如何缓解此漏洞?
此问题可通过以下方式缓解:
- 在开始删除命名空间之前,手动删除 Pod 及编排 Pod 的工作负载资源。
- 向网络策略添加终结器(Finalizer),以防止其在受保护的 Pod 被优先删除之前被删除。以下概念验证控制器自动化此过程: https://github.com/kubernetes-sigs/network-policy-finalizer
已修复版本
暂无。一个长期的全面修复方案已在以下 KEP(Kubernetes Enhancement Proposal)中提出:[KEP 5080] Ordered Namespace Deletion (增强功能 #5095)。
检测
网络策略的用户可能能够通过网络日志检测到滥用行为。此过程的具体细节因环境而异。
如果您发现此漏洞已被利用的证据,请联系 security@kubernetes.io。
致谢
此漏洞由 John McGuinness (@s1xtw03) 和 Aaron Coffey (@aaroncoffey) 报告。
问题由以下人员协调:
- Antonio Ojea (@aojea)
- Tim Hockin (@thockin)
- Dan Winship (@danwinship)
- Shane Utt (@shaneutt)
- David Eads (@deads2k)
- Clayton Colemon (@smarterclayton)
- Mo Khan (@enj)
- Craig Ingram (@cji)
/label official-cve-feed /triage accepted /lifecycle frozen /area security /kind bug /committee security-response
活动记录
-
2024年8月8日:
k8s-ci-robot添加了lifecycle/frozen、triage/accepted、area/security、kind/bug、committee/security-response标签。 -
2024年9月3日: 用户
KartikeyBartwal询问相关细节及受影响版本。 -
2024年9月3日: 贡献者
sftim回复说明此问题是安全问题的占位符,详情尚未公开。 -
2025年3月21日:
k8s-ci-robot添加了official-cve-feed标签。 -
2025年3月22日至2025年11月20日: 该漏洞在多个其他仓库和 PR 中被提及和引用(例如
golang/vulndb、kubernetes-sigs/cve-feed-osv、Kong/kong-operator、klts-io/kubernetes-lts、microsoft/azurelinux等)。 -
2025年4月11日: 在
kubernetes/enhancements的 #5080 号 PR(有序命名空间删除)中被提及。 -
2025年4月29日: 贡献者
cici37评论认为此 CVE 可能随kubernetes/enhancements#5080而关闭,并执行了/close指令。 -
2025年4月29日:
k8s-ci-robot关闭了此问题。 -
2025年4月29日及2025年6月11日: 在关于将有序命名空间删除测试提升为一致性测试的 PR(#131532, #132219)中被提及。