Opened 5 years ago
Last modified 5 years ago
#4528 closed task
linux-5.3.1 — at Version 2
Reported by: | Bruce Dubbs | Owned by: | lfs-book |
---|---|---|---|
Priority: | normal | Milestone: | 9.1 |
Component: | Book | Version: | SVN |
Severity: | normal | Keywords: | |
Cc: |
Description (last modified by )
New minor version.
Change History (2)
comment:2 by , 5 years ago
Description: | modified (diff) |
---|---|
Summary: | linux-5.3 → linux-5.3.1 |
Now at version 5.3.1.
Note:
See TracTickets
for help on using tickets.
Tencent Blade Team discovered a QEMU-KVM Guest to Host Kernel Escape Vulnerability which is in vhost/vhost_net kernel module.
Description:
The vulnerability is in vhost/vhost_net kernel module, vhost/vhost_net is a virtio network backend.
The bug happens in the live migrate flow, when migrating, QEMU needs to know the dirty pages, vhost/vhost_net uses a kernel buffer to record the dirty log, but it doesn't check the bounds of the log buffer. So we can forge the desc table in guest, wait for migrate or doing something (like increase host machine workload or combine a mem leak bug, depends on vendor’s migrate schedule policy) to trigger cloud vendor to migrate this guest. When the guest migrating, it will make the host kernel log buffer overflow.
The vulnerable call path is : handle_rx(drivers/vhost/net.c) -> get_rx_bufs -> vhost_get_vq_desc -> get_indirect(drivers/vhost/vhost.c)
In VM guest, attack can make a indirect desc table in VM driver to let vhost to enter above call path when live migrates the VM, finally to enter into function get_indirect.
In get_indirect, there is the log buffer overflow bug can be triggered as comments below:
Function vhost_get_vq_desc also has above while loop which may cause log buffer overflow.
About the Poof of concept: We(Tencent Blade Team) plan to publish simple reproduce steps of this vulnerability about a week later.
Credit: The vulnerability was discovered by Peter Pi of Tencent Blade Team
--- Cradmin of Tencent Blade Team