Description
In the Linux kernel, the following vulnerability has been resolved: KVM: nVMX: Put vmcs12 pages if nested VM-Enter fails due to invalid guest state Put all vmcs12 pages if KVM synthesizes a nested VM-Exit due to invalid guest while emulating VMLAUNCH or VMRESUME. The invalid guest state path doesn't use nested_vmx_vmexit() as that API is intended to be used if and only if L2 is active, and the open coded equivalent neglects to put the vmcs12 pages. Failure to put the vmcs12 pages leaks any pinned pages (and/or mappings) if L1 retries VMLAUNCH/VMRESUME. Note, the !from_vmenter scenario doesn't suffer the same problem, as vmx_get_nested_state_pages() only gets/pins/maps the vmcs12 pages if L2 is active, i.e. if a "full" VM-Exit is guaranteed before KVM will retry getting vmcs12 pages.
Affected products
Version statuses are supplied by the assigning organization. Consult the original record for detailed ranges and platform conditions.
Linux Linux
Default version status: unaffected
96c66e87deeeb3cc78a3b82a1de8e365eec206c1 to < c174eb76484786721ae9a104344b952acf0e2717affected96c66e87deeeb3cc78a3b82a1de8e365eec206c1 to < a7bf4f5b19965e4466040ad6b24919c1ed326a84affected96c66e87deeeb3cc78a3b82a1de8e365eec206c1 to < f42669f931a6f45e5918cf5e99989b9a6c65e655affected96c66e87deeeb3cc78a3b82a1de8e365eec206c1 to < 7996013b85687034d2e820cef94d6404192e3a3daffected96c66e87deeeb3cc78a3b82a1de8e365eec206c1 to < 2c87a087c20632d68920272173b5d7c47f9bcf70affected96c66e87deeeb3cc78a3b82a1de8e365eec206c1 to < 2f2312c422fd2695da772cecb30c69994b795964affected
Linux Linux
Default version status: affected
5.2affected0 to < 5.2unaffected6.1.191 to ≤ 6.1.*unaffected6.6.160 to ≤ 6.6.*unaffected6.12.114 to ≤ 6.12.*unaffected6.18.40 to ≤ 6.18.*unaffected7.1.5 to ≤ 7.1.*unaffected7.2 to ≤ *unaffected
References
- https://git.kernel.org/stable/c/c174eb76484786721ae9a104344b952acf0e2717 ↗
- https://git.kernel.org/stable/c/a7bf4f5b19965e4466040ad6b24919c1ed326a84 ↗
- https://git.kernel.org/stable/c/f42669f931a6f45e5918cf5e99989b9a6c65e655 ↗
- https://git.kernel.org/stable/c/7996013b85687034d2e820cef94d6404192e3a3d ↗
- https://git.kernel.org/stable/c/2c87a087c20632d68920272173b5d7c47f9bcf70 ↗
- https://git.kernel.org/stable/c/2f2312c422fd2695da772cecb30c69994b795964 ↗