当前位置:首页 > 安全预警 > 正文

关于QEMU-KVM虚拟机存在内核逃逸漏洞安全公告

发布时间:2019-10-12 11:04:27,来源:中国信息通信研究院

      一、内容概述

QEMU-KVM虚拟机存在内核逃逸漏洞,CVE编号:CVE-2019-14835。

受影响版本:

Linux kernel >= 2.6.34

Linux kernel <= 5.2.X

      二、详细说明

VHOST/VHOST_NET是QEMU-KVM虚拟化平台中VIRTIO(I/O虚拟化框架)Network的后端实现方案,在Linux内核层面负责处理虚拟机的网络包收发功能。

由于VHOST/VHOST_NET缺少对内核缓冲区的严格访问边界校验,攻击者可通过在虚拟机中更改VIRTIO network前端驱动,在该虚拟机被热迁移时,触发内核缓冲区溢出实现虚拟机逃逸,获得在宿主机内核中任意执行代码的权限,攻击者也可触发宿主机内核崩溃实现拒绝服务攻击。

      三、漏洞原理

CVE-2019-14835由于VHOST/VHOST_NET缺少对内核缓冲区的严格访问边界校验,攻击者可通过在虚拟机中更改VIRTIO network前端驱动,在该虚拟机被热迁移时,触发内核缓冲区溢出实现虚拟机逃逸,获得在宿主机内核中任意执行代码的权限,攻击者也可触发宿主机内核崩溃实现拒绝服务攻击。

      四、处理方法和建议

漏洞修复建议:

1) 正式解决方案:

Linux内核主线已于9月15日发布补丁,用户可参照补丁代码进行修复:

https://github.com/torvalds/linux/commit/060423bfdee3f8bc6e2c1bac97de24d5415e2bc4

https://git.kernel.org/pub/scm/linux/kernel/git/mst/vhost.git/commit/?h=for_linus&id=060423bfdee3f8bc6e2c1bac97de24d5415e2bc4

使用Linux发行版本的用户可按照发行版厂商公告来修复该漏洞:

RedHat:

https://access.redhat.com/errata/RHSA-2019:2827

https://access.redhat.com/security/vulnerabilities/kernel-vhost

Ubuntu:

https://usn.ubuntu.com/4135-2/

Debian:

https://www.debian.org/security/2019/dsa-4531

SUSE:

https://www.suse.com/security/cve/CVE-2019-14835

2) 临时解决方案:

禁用热迁移功能

由于此漏洞只有在虚拟机热迁移过程中才会被触发,可以通过禁用虚拟机热迁移来规避漏洞利用。

验证方法:无法对虚拟机使用热迁移。

禁用内核vhost-net模块

验证方法:modprobe验证virtio_net模块未加载。

RedHat版本缓解措施

https://access.redhat.com/security/cve/cve-2019-14835

参考链接

1) https://access.redhat.com/security/cve/cve-2019-14835

2) https://blade.tencent.com/achievements/v-ghost/