[漏洞验证] CVE-2021-1056 PoC 容器非法获取宿主机所有GPU

本文介绍了CVE-2021-1056,一个影响NVIDIA GPU驱动的安全漏洞,允许非特权容器内的攻击者获取宿主机所有GPU权限。在多租户HPC集群和深度学习云平台上,此漏洞可能带来严重安全风险。验证过程包括在不同环境下复现漏洞,通过执行特定脚本使容器能访问宿主机GPU。保护措施包括更新驱动或在启动容器时禁用GPU使用。作者分享了发现该漏洞的背景和相关项目GPUMounter的链接。
摘要由CSDN通过智能技术生成

前言

CVE-2021-1056是我前一段时间提交给NVIDA PSIRT的一个存在于NVIDIA GPU驱动程序中与设备隔离相关的安全漏洞。

前几天NVIDIA已经发布了安全公告和补丁,所以在这里记录一下这个漏洞相关的验证和理解,漏洞利用代码和其他一些信息已经开源在GitHub
在这里插入图片描述

利用这个漏洞,通过在容器中创建特殊的字符设备文件,一个非特权容器中的攻击者能够获取宿主机上所有GPU设备的权限。

我认为这个漏洞在多租户HPC集群,尤其是在深度学习云平台上,会带来显而易见的安全风险。

验证环境

  • 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以及所有版本的驱动上都存在。

验证

首先clone一下利用代码

$ git clone https://github.com/pokerfaceSad/CVE-2021-1056.git
$ cd CVE-2021-1056

启动一个GPU容器并且把刚刚clone的代码挂载进去

$ docker run --gpus 1 -v $PWD:/CVE-2021-1056 -it tensorflow/tensorflow:1.13.2-gpu bash

在容器中检查一下GPU状态,发现只有一块GPU,正常

In Container# nvidia-smi
Sat Jan  9 07:21:03 2021       
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 450.51.05    Driver Version: 450.51.05    CUDA Version: 11.0     |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|                               |                      |               MIG M. |
|===============================+======================+======================|
|   0  Tesla V100-PCIE...  Off  | 00000000:02:00.0 Off |                    0 |
| N/A   27C    P0    23W / 250W |      0MiB / 32510MiB |      0%      Default |
|                               |                      |                  N/A |
+-------------------------------+----------------------+----------------------+

+-----------------------------------------------------------------------------+
| Processes:                                                                  |
|  GPU   GI   CI        PID   Type   Process name                  GPU Memory |
|        
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值