CVE-2026-53345
Gravedad:
Pendiente de análisis
Tipo:
No Disponible / Otro tipo
Fecha de publicación:
01/07/2026
Última modificación:
14/07/2026
Descripción
*** Pendiente de traducción *** In the Linux kernel, the following vulnerability has been resolved:<br />
<br />
KVM: Don&#39;t WARN if memory is dirtied without a vCPU when the VM is dying<br />
<br />
When marking a page dirty, complain about not having a running/loaded vCPU<br />
if and only if the VM is still alive, i.e. its refcount is non-zero. This<br />
will allow fixing a memory leak for x86 SEV-ES guests without hitting what<br />
is effectively a false positive on the WARN.<br />
<br />
For some SEV-ES VM-Exits, KVM keeps a writable mapping of a guest page<br />
across an exit to userspace, and typically unmaps the page on the next<br />
KVM_RUN. But if userspace never calls KVM_RUN after such an exit, then KVM<br />
needs to unmap the page when the vCPU is destroyed, which in turn triggers<br />
the WARN about not having a running vCPU.<br />
<br />
Alternatively, SEV-ES could temporarily load the vCPU to suppress the WARN,<br />
as is done in nested_vmx_free_vcpu() (but for completely unrelated reasons;<br />
suppressing WARN from nested_put_vmcs12_pages() is pure happenstance). But<br />
loading a vCPU during destruction is gross (ideally nVMX code would be<br />
cleaned up), risks complicating the SEV-ES code (KVM would need to ensure<br />
the temporarily load()+put() only runs when the vCPU isn&#39;t already loaded),<br />
and is ultimately pointless.<br />
<br />
The motivation for the WARN is to guard against KVM dirtying guest memory<br />
without pushing the corresponding GFN to the active vCPU&#39;s dirty ring, e.g.<br />
to ensure userspace doesn&#39;t miss a dirty page. But for the VM&#39;s refcount<br />
to reach zero, there can&#39;t be _any_ userspace mappings to the dirty ring,<br />
as mapping the dirty ring requires doing mmap() on the vCPU FD. I.e. if<br />
userspace had a valid mapping for the dirty ring, then the vCPU file and<br />
thus the owning VM would still be alive. And so since userspace can&#39;t<br />
possibly reach the dirty ring, whether or not KVM technically "misses" a<br />
push to the dirty ring is irrelevant.
Impacto
Referencias a soluciones, herramientas e información
- https://git.kernel.org/stable/c/033d39e41fc30f484f4e4f37fb4cd76b12cbb18e
- https://git.kernel.org/stable/c/343e95c8ecc40e0738975ef4ee24c0c35e800e6b
- https://git.kernel.org/stable/c/66a8e7ddd901023c89a2733494d827eca3f9c1b0
- https://git.kernel.org/stable/c/8618004d3e897c0f1b71d9a9ab860461289bb89a
- https://git.kernel.org/stable/c/99d7d43784ae3235026581e9bf892c036e04c8e6



