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/