漏洞风险提示 | qemu-kvm 虚拟机逃逸漏洞(CVE-2020-14364)

  • A+
所属分类:安全漏洞
        长亭漏洞风险提示       


     qemu-kvm 虚拟机逃逸漏洞

(CVE-2020-14364)


8 月 24 日,qemu 官方更新了安全补丁,修复了一处数组越界读写的漏洞,漏洞编号为 CVE-2020-14364:https://access.redhat.com/security/cve/cve-2020-14364


CVE-2020-14364 漏洞可越界读写某一个堆之后 0xffffffff 的内容,根据该漏洞可以很轻松实现完整的虚拟机逃逸。


长亭科技安全研究团队经过研究后,认为该漏洞是 Qemu 历史上最严重的虚拟机逃逸漏洞,影响到绝大部分使用 OpenStack 的云厂商。各云厂商需要对此漏洞引起重视,并尽快修复。


漏洞描述


漏洞存在于 ./hw/usb/core.c 中。因为 libvirt 启动的虚拟机默认会有 usb 设备连接,而任何 usb 接口(如 uhci、ehci、xhci)与 usb 设备(如 usb-tablet、usb-mouse 等)之间交互都会经过 core.c 文件中的 usb_process_one 函数。而 usb_process_one 中可能进入的两个分支 do_parameter 和 do_token_setup 均存在一个问题:在检查最终需要使用的长度前已经提前设置了 s->setup_len:


漏洞风险提示 | qemu-kvm 虚拟机逃逸漏洞(CVE-2020-14364)

漏洞风险提示 | qemu-kvm 虚拟机逃逸漏洞(CVE-2020-14364)


而且在长度检查未通过的情况下并未将 s->setup_len 改为0,从而导致之后的 do_token_in 与 do_token_out 越界读写了 s->data_buf 这个数组。


影响范围


  • Qemu 1.x 至今。触发该漏洞需要虚拟机至少连接有一个 usb 设备。


解决方案


  • 各云厂商可参考以下补丁进行漏洞修复:
    https://www.openwall.com/lists/oss-security/2020/08/24/3/1


参考资料



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

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

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

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


漏洞风险提示 | qemu-kvm 虚拟机逃逸漏洞(CVE-2020-14364)


漏洞风险提示 | qemu-kvm 虚拟机逃逸漏洞(CVE-2020-14364)




发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: