报告编号:B6-2020-092901
报告来源:360CERT
报告作者:360CERT
更新日期:2020-09-29
0x01 事件简述
2020年09月29日,360CERT监测发现 DPDK
发布了 DPDK vhost 多个高危漏洞
的风险通告,漏洞编号包含 CVE-2020-14374等
,事件等级: 高危
,事件评分: 8.8
。
DPDK vhost 组件中存在多处漏洞,最严重的为一处为 代码执行漏洞
(并能够造成虚拟环境逃逸)。
使用 vhost
组件的用户应当立即升级版本
对此,360CERT建议广大用户及时将 DPDK
升级到最新版本。与此同时,请做好资产自查以及预防工作,以免遭受黑客攻击。
0x02 风险等级
360CERT对该事件的评定结果如下
评定方式 | 等级 |
---|---|
威胁等级 | 高危 |
影响面 | 不确定 |
360CERT评分 | 8.8 |
0x03 事件详情
CVE-2020-14374: 代码执行漏洞
DPDK vhost_crypto.c
中 copy_data
函数的边界检查不正确,导致一处缓冲区溢出漏洞。
虚拟环境中的攻击者通过利用该缓冲区溢出漏洞来复写任意数据到 vhost_crypto应用程序中的任何地址,造成 代码执行
。
该漏洞可用于在vhost_crypto进程中执行代码,并造成虚拟环境逃逸。
CVE-2020-14375: 缓冲区/栈溢出漏洞
DPDK vhost_crypto.c
中 Virtio Ring描述符及内存区域中的数据可以被虚拟机和主机访问。
虚拟环境中的攻击者通过在 vhost_crypto.c 相关功能验证后修改该内存区域内容,可造成 缓冲区溢出
。
并且当满足 CVE-2020-14374
的情况时可造成 代码执行
。
CVE-2020-14376: 缓冲区/栈溢出漏洞
DPDK vhost_crypto.c
在从虚拟环境复制 iv_data
数据时,存在一处缓冲区溢出漏洞。
虚拟环境中的攻击者通过控制控制 cipher->para.iv_len
参数,最多复制4G数据到 iv_data 的缓冲区,可造成 缓冲区溢出
,并在特定条件下导致 代码执行
。
CVE-2020-14377: 缓冲区/栈溢出漏洞
DPDK vhost_crypto.c
中缺乏对 cipher->para.dst_data_len
的校验。导致存在一处缓冲区越界读取漏洞。
虚拟环境中的攻击者通过控制该参数,可以造成 缓冲区越界读取
。
该漏洞可以将大量的主机内存内容读取到虚拟环境中,可以与 CVE-2020-14374
结合,读取任意 vhost_crypto
进程的数据。
CVE-2020-14378: 拒绝服务漏洞
DPDK vhost_crypto.c
中 move_desc
函数存在一处整数溢会漏洞。
虚拟环境中的攻击者通过触发该漏洞,可造成 拒绝服务
。
该漏洞导致执行长时间运行的循环。 最多可以使 move_desc
函数陷入 4,294,967,295
次迭代循环中。 同时根据使用vhost_crypto的方式,这可能会影响其他虚拟环境或DPDK lcore执行效率。
0x04 影响版本
dpdk:dpdk
: <18.11.10dpdk:dpdk
: <19.11.5
0x05 修复建议
通用修补建议
升级到 DPDK 最新版本
DPDK 18.11.10 (LTS) DPDK 19.11.5 (LTS)
0x06 产品侧解决方案
360安全分析响应平台
360安全大脑的安全分析响应平台通过网络流量检测、多传感器数据融合关联分析手段,对该类漏洞的利用进行实时检测和阻断,请用户联系相关产品区域负责人或(shaoyulong#360.cn)获取对应产品。
0x07 时间线
2020-09-28 @Ryan Hall 披露部分漏洞详情
2020-09-29 360CERT发布通告