一、漏洞简介¶
1.1 漏洞背景¶
Kubernetes Image Builder 项目用于构建 Kubernetes 节点的虚拟机镜像。
1.2 漏洞概述(包含 CVE 编号、危害等级、漏洞类型、披露时间等)¶
| 项目 | 内容 |
|---|---|
| 漏洞编号 | CVE-2024-9594 |
| 危害等级 | MEDIUM / 6.3 |
| 漏洞类型 | Image Builder默认凭证 |
| 披露时间 | 2024-10-15 |
| 影响组件 | Kubernetes |
- CVE编号: CVE-2024-9594
- 危害等级: 高危 (High)
- CVSS评分: 7.2
- CVSS向量: CVSS:3.1/AV:A/AC:H/PR:H/UI:R/S:U/C:H/I:H/A:H
- 漏洞类型: 默认凭证
- 发现者: Nicolai Rybnikar (Rybnikar Enterprises GmbH)
补充核验信息:公开时间:2024-10-15;NVD 评分:6.3(MEDIUM);CWE:CWE-798。
二、影响范围¶
2.1 受影响的版本¶
- Kubernetes Image Builder <= v0.1.37
2.2 不受影响的版本¶
- Kubernetes Image Builder v0.1.38+
2.3 触发条件(如特定模块、特定配置、特定运行环境等)¶
- 使用 Nutanix、OVA、QEMU 或 raw 提供者构建的 VM 镜像
- 攻击者在镜像构建期间可访问构建 VM
- 使用默认凭证获得 root 访问
三、漏洞详情与原理解析¶
3.1 漏洞触发机制¶
Image Builder 在构建过程中启用了默认凭证(builder 账户),攻击者如果在构建期间能访问 VM,可使用该凭证获取 root 权限并修改镜像。
注意:凭证在构建结束后被禁用,仅构建期间存在风险。
3.2 源码层面的根因分析(结合源码与补丁对比)¶
修复补丁为构建过程设置随机生成的密码:
# 修复前:固定或空密码
# 修复后:随机生成密码
SSH_PASSWORD=$(openssl rand -base64 32)
四、漏洞复现(可选)¶
4.1 环境搭建¶
# 克隆 Image Builder
git clone https://github.com/kubernetes-sigs/image-builder
cd image-builder
git checkout v0.1.37
4.2 PoC 演示与测试过程¶
在构建期间,尝试使用默认凭证:
# 检查 builder 账户登录
last builder
五、修复建议与缓解措施¶
5.1 官方版本升级建议¶
升级到 Image Builder v0.1.38+ 并重新构建镜像。
5.2 临时缓解方案(如修改配置文件、关闭相关模块、增加 WAF 规则等)¶
确保构建环境网络隔离,限制访问构建 VM。
版本检查方法:
# Git 克隆方式
cd <image-builder-repo>
make version
# tarball 安装
grep -o v0\\.[0-9.]* RELEASE.md | head -1
# 容器镜像
docker run --rm <image> version
六、参考信息 / 参考链接¶
6.1 官方安全通告¶
- https://groups.google.com/g/kubernetes-security-announce/c/UKJG-oZogfA/m/Lu1hcnHmAQAJ
- https://github.com/kubernetes-sigs/image-builder/pull/1596
- https://github.com/kubernetes-sigs/image-builder
- https://github.com/kubernetes/kubernetes/issues/128007
6.2 其他技术参考资料¶
- NVD:https://nvd.nist.gov/vuln/detail/CVE-2024-9594
- CVE:https://www.cve.org/CVERecord?id=CVE-2024-9594
- https://github.com/kubernetes/kubernetes/issues/128007
- https://github.com/kubernetes-sigs/image-builder
- https://github.com/kubernetes-sigs/image-builder/pull/1596