CVE-2021-1056 是我向 NVIDIA PSIRT 提交的一个漏洞。个人认为,在多租户 HPC 集群(尤其是云机器学习平台)中,它可能导致较高的安全风险。
本仓库简单地演示了该漏洞在由 nvidia-container-runtime 创建的 GPU 容器中的表现。
通过创建特定的字符设备文件,GPU 容器(由 nvidia-container-runtime 创建的容器)中的攻击者能够访问宿主机上所有的 GPU 设备。
该漏洞同样适用于在 Kubernetes 集群上由 k8s-device-plugin 创建的 GPU Pod。
Docker 19.03
nvidia-container-toolkit
NVIDIA Driver 418.87.01 / 450.51.05
NVIDIA GPU Tesla V100 / TITAN V / Tesla K80
注意:仅包含少量测试环境,但根据 NVIDIA 安全公告,该漏洞影响所有 GeForce、NVIDIA RTX/Quadro、NVS 和 Tesla 系列 GPU 及所有版本的驱动。
推荐做法
或者
docker run 中添加参数 --cap-drop MKNOD 以禁止容器内使用 mknodsecurity context本项目采用 MIT 许可证。
如有任何问题,欢迎提交 Issues 和 Pull Requests。