CVE-2022-48727
Severity CVSS v4.0:
Pending analysis
Type:
Unavailable / Other
Publication date:
20/06/2024
Last modified:
01/10/2025
Description
In the Linux kernel, the following vulnerability has been resolved:<br />
<br />
KVM: arm64: Avoid consuming a stale esr value when SError occur<br />
<br />
When any exception other than an IRQ occurs, the CPU updates the ESR_EL2<br />
register with the exception syndrome. An SError may also become pending,<br />
and will be synchronised by KVM. KVM notes the exception type, and whether<br />
an SError was synchronised in exit_code.<br />
<br />
When an exception other than an IRQ occurs, fixup_guest_exit() updates<br />
vcpu->arch.fault.esr_el2 from the hardware register. When an SError was<br />
synchronised, the vcpu esr value is used to determine if the exception<br />
was due to an HVC. If so, ELR_EL2 is moved back one instruction. This<br />
is so that KVM can process the SError first, and re-execute the HVC if<br />
the guest survives the SError.<br />
<br />
But if an IRQ synchronises an SError, the vcpu&#39;s esr value is stale.<br />
If the previous non-IRQ exception was an HVC, KVM will corrupt ELR_EL2,<br />
causing an unrelated guest instruction to be executed twice.<br />
<br />
Check ARM_EXCEPTION_CODE() before messing with ELR_EL2, IRQs don&#39;t<br />
update this register so don&#39;t need to check.
Impact
Base Score 3.x
5.50
Severity 3.x
MEDIUM
Vulnerable products and versions
| CPE | From | Up to |
|---|---|---|
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 5.11 (including) | 5.15.22 (excluding) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 5.16 (including) | 5.16.8 (excluding) |
| cpe:2.3:o:linux:linux_kernel:5.17:rc1:*:*:*:*:*:* | ||
| cpe:2.3:o:linux:linux_kernel:5.17:rc2:*:*:*:*:*:* |
To consult the complete list of CPE names with products and versions, see this page
References to Advisories, Solutions, and Tools
- https://git.kernel.org/stable/c/1c71dbc8a179d99dd9bb7e7fc1888db613cf85de
- https://git.kernel.org/stable/c/57e2986c3b25092691a6e3d6ee9168caf8978932
- https://git.kernel.org/stable/c/e1e852746997500f1873f60b954da5f02cc2dba3
- https://git.kernel.org/stable/c/1c71dbc8a179d99dd9bb7e7fc1888db613cf85de
- https://git.kernel.org/stable/c/57e2986c3b25092691a6e3d6ee9168caf8978932
- https://git.kernel.org/stable/c/e1e852746997500f1873f60b954da5f02cc2dba3



