Description
In the Linux kernel, the following vulnerability has been resolved: KVM: arm64: Clear __hyp_running_vcpu when flushing the pKVM hyp vCPU flush_hyp_vcpu() copies the host vCPU context into the hyp's private vCPU on every run. ctxt_to_vcpu() expects a guest context to have a NULL __hyp_running_vcpu, which is only ever set on the host context, so that it resolves the vCPU via container_of(). While this is generally the case, flush_hyp_vcpu() copies the context verbatim and does not enforce this, so a value provided by the host is dereferenced at EL2 (host -> EL2). Fix by clearing __hyp_running_vcpu after the copy.
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
be66e67f175096f283c9d5614c4991fc9e7ed975 to < 477145860dba4c30f0b4e36f02f4c5291c1c888baffectedbe66e67f175096f283c9d5614c4991fc9e7ed975 to < dfaef40d8a1533940fc1af788d70fce07362b4ceaffectedbe66e67f175096f283c9d5614c4991fc9e7ed975 to < 6bea2f8becdb20d34378493c3b77a9b9cf8c6cfaaffectedbe66e67f175096f283c9d5614c4991fc9e7ed975 to < d4f4d61715d1061ba83b88196a3605662be30750affectedbe66e67f175096f283c9d5614c4991fc9e7ed975 to < e8042f6e1d7befb2fb6b10a75918642bcd0acf9aaffected
Linux Linux
Default version status: affected
6.2affected0 to < 6.2unaffected6.6.145 to ≤ 6.6.*unaffected6.12.97 to ≤ 6.12.*unaffected6.18.39 to ≤ 6.18.*unaffected7.1.4 to ≤ 7.1.*unaffected7.2 to ≤ *unaffected
References
- https://git.kernel.org/stable/c/477145860dba4c30f0b4e36f02f4c5291c1c888b ↗
- https://git.kernel.org/stable/c/dfaef40d8a1533940fc1af788d70fce07362b4ce ↗
- https://git.kernel.org/stable/c/6bea2f8becdb20d34378493c3b77a9b9cf8c6cfa ↗
- https://git.kernel.org/stable/c/d4f4d61715d1061ba83b88196a3605662be30750 ↗
- https://git.kernel.org/stable/c/e8042f6e1d7befb2fb6b10a75918642bcd0acf9a ↗