DPDK vhost多个清静误差通告
宣布时间 2020-09-290x00 误差概述
数据平面开发套件DPDK是由6WIND和Intel等多家公司开发,主要基于Linux系统运行,用于快速数据包处置惩罚的函数库与驱动荟萃,可以极大提高数据处置惩罚性能和吞吐量,并提高数据平面应用程序的事情效率。
2020年09月28日,DPDK开发团队宣布了DPDK vhost多个高危误差的清静通告。其中包括远程代码执行误差、缓冲区溢出误差和拒绝服务误差等。
0x01 误差详情

此次宣布的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/



京公网安备11010802024551号