【严重】NVIDIA Container Toolkit < 1.17.8 容器逃逸漏洞
漏洞描述
NVIDIA Container Toolkit 是用于在容器中启用 GPU 加速计算的官方工具集,支持 NVIDIA 显卡驱动与 CUDA 环境的集成运行。
受漏洞影响版本中,NVIDIA Container Toolkit 中的 hook 初始化机制存在缺陷,由于在创建容器时继承环境变量 LD_PRELOAD,导致攻击者可以通过在容器启动时劫持挂载路径,将宿主机根目录挂入容器,并注入恶意共享库实现容器逃逸,获取宿主机 root 权限。
修复版本通过更新libnvidia-container库,阻止createContainer钩子继承恶意环境变量,从而防止容器逃逸。
| MPS编号 | MPS-zbip-29c7 |
|---|---|
| CVE编号 | CVE‑2025‑23266 |
| 处置建议 | 建议修复 |
| 发现时间 | 2025-07-18 |
| 利用成本 | 中 |
| 利用可能性 | 高 |
| 是否有POC | 是 |
影响范围
| 影响组件 | 受影响的版本 | 最小修复版本 |
|---|---|---|
| nvidia_container_toolkit | (-∞, 1.17.8) | 1.17.8 |
| nvidia_gpu_operator | (-∞, 25.3.1] | 暂无 |
| libnvidia_container | (-∞, 1.17.8) | 1.17.8 |
参考链接
https://www.oscs1024.com/hd/MPS-zbip-29c7
https://nvidia.custhelp.com/app/answers/detail/a_id/5659
https://github.com/NVIDIA/nvidia-container-toolkit/commit/77326385eaa22b516f9b43467ee4a8397319da13
排查方式
手动排查
检查NVIDIA Container Toolkit版本:执行nvidia-container-toolkit --version,确认版本是否<1.17.8。
检查libnvidia_container版本:执行dpkg -l libnvidia-container-tools(Debian/Ubuntu)或rpm -q libnvidia-container(RHEL/CentOS),确认版本是否<1.17.8。
检查nvidia_gpu_operator版本:若使用,执行kubectl get deployment nvidia-gpu-operator -n gpu-operator-resources -o jsonpath='{.spec.template.spec.containers[0].image}',确认镜像标签是否≤25.3.1。
检查容器环境变量:对运行中容器执行docker inspect <container_id> | grep LD_PRELOAD,查看是否存在非预期设置。
一键自动排查全公司此类风险
墨菲安全为您免费提供一键排查全公司开源组件漏洞&投毒风险服务,可一键接入扫描全公司的代码仓库、容器镜像仓库、主机、制品仓库等。
试用地址:https://www.murphysec.com/adv?code=9VL5
提交漏洞情报:https://www.murphysec.com/bounty
处置方式
应急缓解方案
- 立即限制容器启动权限,禁止使用
--privileged或--cap-add=SYS_ADMIN等高危参数运行容器 - 实施环境变量白名单机制,在容器启动时显式清除或覆盖
LD_PRELOAD环境变量 - 对所有运行中的NVIDIA容器进行审计,检查是否存在异常挂载点特别是宿主机根目录挂载
- 临时禁用非必要的GPU容器服务,减少攻击面
- 在容器运行时配置中添加
no-new-privileges:true参数,限制权限提升
根本修复方案
- 通过官方渠道将nvidia_container_toolkit升级至1.17.8或更高版本
- 将nvidia_gpu_operator升级至25.3.2或更高版本
- 将libnvidia_container库升级至1.17.8或更高版本
- 升级命令示例(适用于Debian/Ubuntu系统):
apt-get update && apt-get install -y nvidia-container-toolkit=1.17.8+[...](具体版本号需参考官方仓库) - 升级完成后重启Docker或containerd服务:
systemctl restart docker或systemctl restart containerd - 验证版本:执行
nvidia-container-toolkit --version确认版本已更新 - 重新创建所有GPU相关容器以应用修复后的运行时环境