【漏洞通告】Qemu虚拟机逃逸漏洞(CVE-2020-14364)通告

2020-08-28 16:27:42 浏览数 (1)

通告编号:NS-2020-0049

2020-08-25

TAG:

Qemu、虚拟机逃逸、CVE-2020-14364

漏洞危害:

攻击者利用此漏洞,可实现虚拟机逃逸及代码执行。

版本:

1.0

1

漏洞概述

8 月 24 日,Qemu更新安全补丁修复了一个虚拟机逃逸漏洞(CVE-2020-14364),此漏洞为QEMU USB模拟器中的数组越界读写造成,漏洞位于 ./hw/usb/core.c 中,当程序处理来自客户机的USB数据包时,如果在 do_token_in 与 do_token_out中'USBDevice->setup_len'超过了USBDevice->data_buf[4096],则存在此问题。越界后读取某一个堆之后 0xffffffff 的内容,从而强行终止虚拟化进程,进而实现虚拟机逃逸。

攻击者在拥有云环境虚拟机操作系统权限的情况下,可以利用该漏洞获取宿主机权限,进而攻击虚拟机所在资源池所有租户主机,甚至可通过已开通的内网权限攻击管理域系统。

QEMU(quick emulator)是一套由Fabrice Bellard等人编写的以GPL许可证分发源码的模拟处理器,是众多云厂商底层均涉及的商用组件,此漏洞影响了当前大部分使用 OpenStack 的云厂商,建议相关用户尽快采取措施进行修复。

参考链接:

https://www.openwall.com/lists/oss-security/2020/08/24/2

https://www.openwall.com/lists/oss-security/2020/08/24/3

SEE MORE →

2影响范围

受影响版本

  • Qemu 1.x – 5.1.0

注:触发此漏洞需要虚拟机至少连接一个usb设备

3漏洞检测

3.1 版本检测

相关用户可使用以下两种命令查询当前使用的Qemu版本:

kvm -version

qemu-img -V

若当前版本在受影响范围内,则可能存在安全风险。

4漏洞防护

4.1 漏洞修复建议

请受影响的云厂商参考以下补丁进行修复:

https://www.openwall.com/lists/oss-security/2020/08/24/3/1

Red Hat:

https://access.redhat.com/security/cve/cve-2020-14364

Debain:

https://security-tracker.debian.org/tracker/CVE-2020-14364

4.2 应急修复方案

以 1.5.3 qemu 版本为例:

1、修改 qemu-1.5.3/hw/usb/core.c 文件中的 do_token_setup函数,添加下图红框中的内容:

修改qemu-1.5.3/hw/usb/core.c文件中的do_parameter函数,添加下图红框中的内容:

2、重新编译 qemu 软件包

此处以 src.rpm 简要介绍如何重新编译 qemu 包。

1)使用 rpm -ivh 命令解压 src.rpm

2)修改代码

2.1) 参考第1节修改如下文件(或以 patch 文件形式体现):

~/rpmbuild/SOURCES/qemu-1.5.3/hw/usb/core.c

2.2) 修改 spec 文件,修改版本号,changlog 描述等内容:

~/rpmbuild/SPEC/qemu-kvm

3)通过rpmbuild -ba ~/rpmbuild/SPEC/qemu-kvm生成rpm包;

3、 升级

在获取到更新后的软件包后,对宿主机的存量 qemu 软件进行升级,并硬重启虚机(若业务不允许中断,则需要研发人员提供热补丁方案)。

END

作者:绿盟科技威胁对抗能力部

0 人点赞