CVE-2024-39483
Severity CVSS v4.0:
Pending analysis
Type:
Unavailable / Other
Publication date:
05/07/2024
Last modified:
08/07/2024
Description
In the Linux kernel, the following vulnerability has been resolved:<br />
<br />
KVM: SVM: WARN on vNMI + NMI window iff NMIs are outright masked<br />
<br />
When requesting an NMI window, WARN on vNMI support being enabled if and<br />
only if NMIs are actually masked, i.e. if the vCPU is already handling an<br />
NMI. KVM&#39;s ABI for NMIs that arrive simultanesouly (from KVM&#39;s point of<br />
view) is to inject one NMI and pend the other. When using vNMI, KVM pends<br />
the second NMI simply by setting V_NMI_PENDING, and lets the CPU do the<br />
rest (hardware automatically sets V_NMI_BLOCKING when an NMI is injected).<br />
<br />
However, if KVM can&#39;t immediately inject an NMI, e.g. because the vCPU is<br />
in an STI shadow or is running with GIF=0, then KVM will request an NMI<br />
window and trigger the WARN (but still function correctly).<br />
<br />
Whether or not the GIF=0 case makes sense is debatable, as the intent of<br />
KVM&#39;s behavior is to provide functionality that is as close to real<br />
hardware as possible. E.g. if two NMIs are sent in quick succession, the<br />
probability of both NMIs arriving in an STI shadow is infinitesimally low<br />
on real hardware, but significantly larger in a virtual environment, e.g.<br />
if the vCPU is preempted in the STI shadow. For GIF=0, the argument isn&#39;t<br />
as clear cut, because the window where two NMIs can collide is much larger<br />
in bare metal (though still small).<br />
<br />
That said, KVM should not have divergent behavior for the GIF=0 case based<br />
on whether or not vNMI support is enabled. And KVM has allowed<br />
simultaneous NMIs with GIF=0 for over a decade, since commit 7460fb4a3400<br />
("KVM: Fix simultaneous NMIs"). I.e. KVM&#39;s GIF=0 handling shouldn&#39;t be<br />
modified without a *really* good reason to do so, and if KVM&#39;s behavior<br />
were to be modified, it should be done irrespective of vNMI support.
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:*:*:*:*:*:*:*:* | 6.4 (excluding) | |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.6 (including) | 6.6.34 (excluding) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.9 (including) | 6.9.5 (excluding) |
| cpe:2.3:o:linux:linux_kernel:6.10.0:rc1:*:*:*:*:*:* | ||
| cpe:2.3:o:linux:linux_kernel:6.10.0:rc2:*:*:*:*:*:* |
To consult the complete list of CPE names with products and versions, see this page



