DPDK 多个高危漏洞通告
2020-09-29 14:31

报告编号: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.ccopy_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.cmove_desc 函数存在一处整数溢会漏洞。

虚拟环境中的攻击者通过触发该漏洞,可造成 拒绝服务

该漏洞导致执行长时间运行的循环。 最多可以使 move_desc 函数陷入 4,294,967,295 次迭代循环中。 同时根据使用vhost_crypto的方式,这可能会影响其他虚拟环境或DPDK lcore执行效率。

0x04 影响版本

  • dpdk:dpdk : <18.11.10
  • dpdk: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发布通告

0x08 参考链接

  1. Bug 272 - DPDK Virtio Crypto Vulnerabilities and Issues
  2. DPDK security advisory for multiple vhost crypto issues