您的需求已经提交,我们将在48小时内联系您
全国服务热线:400-1000-221
确定
免费享受企业级云安全服务
获取手机验证码
{{message}}
免费试用

Qemu 虚拟机逃逸漏洞(CVE-2020-14364)

作者:
发布时间:2020-08-24

  漏洞概述

  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

  影响范围

  受影响版本

  Qemu 1.x – 5.1.0

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

  漏洞检测

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

  kvm -version

  qemu-img -V

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

  漏洞防护

  01

  漏洞修复建议

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

  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

  02

  应急修复方案

  以 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 软件进行升级,并重启虚机(若业务不允许中断,则需要研发人员提供热补丁方案)。

标签: