Full Report
A flaw in Linux's vhost subsystem lets a local user read and write kernel memory at will and become root across nearly a decade of kernel versions. In one virtualization setup, it lets an untrusted virtual machine write to the host's memory and hijack the program that runs the virtual machine. The bug is tracked as CVE-2026-74580 and named Vghost. Tencent Zhuque Lab, which found the
Analysis Summary
# Vulnerability: Vghost - Linux Kernel vhost Subsystem Privilege Escalation and VM Escape
## CVE Details
- **CVE ID:** CVE-2026-74580
- **CVSS Score:** Not explicitly listed in text, but categorized as critical (estimated 8.8–9.8 based on impact).
- **CWE:** CWE-119 (Improper Restriction of Operations within the Bounds of a Memory Buffer) / CWE-601 (Stale Cache)
## Affected Systems
- **Products:** Linux Kernel
- **Versions:** Affected from version 4.11 through 7.2-rc4 (Nearly a decade of versions).
- **Configurations:**
- **Local Escalation:** Systems where `/dev/vhost-net` or `/dev/vhost-vsock` are accessible (often world-readable `0666`).
- **VM Escape:** Virtualization setups using `virtio` devices behind a virtual IOMMU with `iommu_platform` enabled and `vhost` in device-IOTLB mode.
## Vulnerability Description
The flaw resides in the **vhost** subsystem, which handles high-speed I/O for containers and VMs. vhost maintains a cache of memory mappings to optimize performance. A vulnerability exists because this cache is not cleared when the `VHOST_SET_VRING_ADDR` or `VHOST_SET_VRING_NUM` commands are used to reconfigure a live queue.
Technically, a logic error introduced across two updates (2017 and 2020) allows new, unvalidated addresses to be accepted while the system continues to use stale, cached translations. This results in the kernel performing reads and writes to/from memory addresses without proper bounds checking, enabling an attacker to bypass KASLR and gain full kernel memory access.
## Exploitation
- **Status:** PoC available (published by Tencent Zhuque Lab); no known exploitation in the wild at this time.
- **Complexity:** Low (Deterministic attack; requires no memory grooming or specific timing).
- **Attack Vector:** Local (Local user on host or untrusted guest VM).
## Impact
- **Confidentiality:** High (Arbitrary kernel memory read).
- **Integrity:** High (Arbitrary kernel memory write; root escalation).
- **Availability:** High (Host crash or hijack of QEMU process).
## Remediation
### Patches
The primary fix is **commit de845981da67**, which ensures the cache is cleared during ring reconfiguration.
- **Upstream Fixed Versions:**
- 5.10.265
- 5.15.216
- 6.1.183
- 6.6.152
- 6.12.104
- 6.18.45
- 7.1.9
- 7.2
### Workarounds
- **Restrict Device Access:** Immediately change permissions on `/dev/vhost-net` and `/dev/vhost-vsock` to remove world-read/write access. Limit access to a trusted group (e.g., `kvm`) and treat that group as a high-privilege entity.
- **Note:** There is no known workaround for the Guest-to-Host escape path other than patching the host kernel.
## Detection
- **Indicators of Compromise:** Unusual activity or unexpected crashes in the QEMU process on the host. Unauthorized escalation of privileges from local users or service accounts.
- **Detection Methods:** Monitor for unauthorized calls to vhost ioctls, specifically reconfiguration commands on active queues. Audit file permissions for vhost device nodes.
## References
- **Tencent Zhuque Lab Write-up:** hxxps[://]matrix[.]tencent[.]com/en/2026/10/12/vghost-cve-2026-74580
- **PoC Repository:** hxxps[://]github[.]com/zhangutah/security-research/tree/main/pocs/linux/cve-2026-74580
- **Linux Kernel Archive:** hxxps[://]git[.]kernel[.]org/linus/de845981da67a6b049080c87e605130b0c30adc5
- **Vendor Advisories:**
- Red Hat: hxxps[://]access[.]redhat[.]com/security/cve/CVE-2026-74580
- Amazon Linux: hxxps[://]explore[.]alas[.]aws[.]amazon[.]com/CVE-2026-74580[.]html
- Ubuntu: hxxps[://]ubuntu[.]com/security/CVE-2026-74580