0x00 漏洞概述
数据平面开发套件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 |
影响范围
l dpdk:<18.11.10
l 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/
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论