DPDK vhost多个安全缝隙公告

颁布功夫 2020-09-29

0x00 缝隙概述

数据平面开发套件DPDK是由6WIND和Intel等多家公司开发,重要基于Linux系统运行,用于急剧数据包处置的函数库与驱动集中,能够极大提高数据处置机能和吞吐量,并提高数据平面利用法式的工作效能。

2020年09月28日,DPDK开发团队颁布了DPDK vhost多个高危缝隙的安全公告。其中蕴含远程代码执行缝隙、缓冲区溢露马脚和回绝服务缝隙等。

 

0x01 缝隙详情

 

image.png


这次颁布的DPDK vhost安全缝隙如下:

 

缝隙编号

缝隙类型

严沉水平

评分

CVE-2020-14374

远程代码执行

高

8.8

CVE-2020-14375

缓冲区溢出

高

7.8

CVE-2020-14376

缓冲区溢出

高

7.8

CVE-2020-14377

缓冲区溢出

高

7.1

CVE-2020-14378

回绝服务

低

3.3

 

影响领域

    • dpdk:<18.11.10

    • dpdk:<19.11.5

 

缝隙详情

DPDK vhost代码执行缝隙(CVE-2020-14374)

该缝隙是由于copy_data函数中的天堑查抄不正确导致缓冲区溢出。攻击者能够利用缓冲区溢出在vhost_crypto利用法式中的任何地址写入肆意数据。

成功利用该缝隙的攻击者能够在vhost_crypto过程中执行远程代码,并可导致虚构机逃逸。

Bugzilla链接:https://bugs.dpdk.org/show_bug.cgi?id=272

 

DPDK vhost缓冲区溢露马脚(CVE-2020-14375)

该缝隙是由于DPDK vhost_crypto.c中Virtio Ring描述符及内存区域中的数据能够被虚构机和主机接见。攻击者公告批改该内存区域的内容,可造成缓冲区溢出。并且当满足缝隙CVE-2020-14374的情况时可造成代码执行。

Bugzilla链接:https://bugs.dpdk.org/show_bug.cgi?id=272

 

DPDK vhost缓冲区溢露马脚(CVE-2020-14376)

DPDK vhost_crypto.c在从虚构机内存复造 iv_data 数据到主机时,短缺天堑查抄内存可能导致缓冲区溢出。

攻击者通过节造cipher->para.iv_len 参数,最多能够复造4G数据到 iv_data 的缓冲区,可造成缓冲区溢出,并在特定前提下导致代码执行。

 Bugzilla链接:https://bugs.dpdk.org/show_bug.cgi?id=272

 

DPDK vhost缓冲区溢露马脚(CVE-2020-14377)

DPDK vhost_crypto.c中不足对 cipher->para.dst_data_len 的校验。攻击者通过节造该参数,能够造成缓冲区越界读取。

该缝隙能够将大量的主机内存内容读取到虚构机内存中,并且能够与缝隙CVE-2020-14374 结合使用,可导致vhost_crypto过程数据被肆意读取。

Bugzilla链接:https://bugs.dpdk.org/show_bug.cgi?id=272

 

DPDK vhost回绝服务缝隙(CVE-2020-14378)

DPDK vhost_crypto.c中,move_desc函数中的整数下溢会导致很多cpu周期被长功夫运行的循环所吞噬。攻击者最多能导致move_desc陷入4,294,967,295迭代循环中。 同时凭据使用vhost_crypto的方式,这可能会影响其他虚构环境或DPDK lcore执行效能。

成功利用此缝隙的攻击者可造成回绝服务。

Bugzilla链接:https://bugs.dpdk.org/show_bug.cgi?id=272

 

0x02 措置建议

建议升级至DPDK最新版本。

下载链接:

https://fast.dpdk.org/rel/dpdk-19.11.5.tar.xz

http://fast.dpdk.org/rel/dpdk-18.11.10.tar.xz

 

0x03 参考链接

https://seclists.org/oss-sec/2020/q3/200

https://bugs.dpdk.org/show_bug.cgi?id=272

 

0x04 功夫线

2020-09-28  DPDK颁布安全布告

2020-09-29  VSRC颁布安全公告


0x05 附录

 

CVSS评分尺度官网:http://www.first.org/cvss/



 image.png