CVE-2024-55881

Source
https://nvd.nist.gov/vuln/detail/CVE-2024-55881
Import Source
https://storage.googleapis.com/osv-test-cve-osv-conversion/osv-output/CVE-2024-55881.json
JSON Data
https://api.test.osv.dev/v1/vulns/CVE-2024-55881
Downstream
Related
Published
2025-01-11T12:35:44.019Z
Modified
2025-11-26T19:33:52.623932Z
Summary
KVM: x86: Play nice with protected guests in complete_hypercall_exit()
Details

In the Linux kernel, the following vulnerability has been resolved:

KVM: x86: Play nice with protected guests in completehypercallexit()

Use is64bithypercall() instead of is64bitmode() to detect a 64-bit hypercall when completing said hypercall. For guests with protected state, e.g. SEV-ES and SEV-SNP, KVM must assume the hypercall was made in 64-bit mode as the vCPU state needed to detect 64-bit mode is unavailable.

Hacking the sevsmoketest selftest to generate a KVMHCMAPGPARANGE hypercall via VMGEXIT trips the WARN:

------------[ cut here ]------------ WARNING: CPU: 273 PID: 326626 at arch/x86/kvm/x86.h:180 completehypercallexit+0x44/0xe0 [kvm] Modules linked in: kvmamd kvm ... [last unloaded: kvm] CPU: 273 UID: 0 PID: 326626 Comm: sevsmoketest Not tainted 6.12.0-smp--392e932fa0f3-feat #470 Hardware name: Google Astoria/astoria, BIOS 0.20240617.0-0 06/17/2024 RIP: 0010:completehypercallexit+0x44/0xe0 [kvm] Call Trace: <TASK> kvmarchvcpuioctlrun+0x2400/0x2720 [kvm] kvmvcpuioctl+0x54f/0x630 [kvm] _sesysioctl+0x6b/0xc0 dosyscall64+0x83/0x160 entrySYSCALL64afterhwframe+0x76/0x7e </TASK> ---[ end trace 0000000000000000 ]---

Database specific
{
    "cna_assigner": "Linux",
    "osv_generated_from": "https://github.com/CVEProject/cvelistV5/blob/9c3874e559580d6c6ec8d449812ac11277724770/cves/2024/55xxx/CVE-2024-55881.json"
}
References

Affected packages

Git / git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git

Affected ranges

Type
GIT
Repo
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
Events
Introduced
5969e2435cbd7f0ce8c28d717bfc39987ee8d8f1
Fixed
0840d360a8909c722fb62459f42836afe32ededb
Type
GIT
Repo
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
Events
Introduced
b5aead0064f33ae5e693a364e3204fe1c0ac9af2
Fixed
7ed4db315094963de0678a8adfd43c46471b9349
Type
GIT
Repo
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
Events
Introduced
b5aead0064f33ae5e693a364e3204fe1c0ac9af2
Fixed
3d2634ec0d1dbe8f4b511cf5261f327c6a76f4b6
Type
GIT
Repo
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
Events
Introduced
b5aead0064f33ae5e693a364e3204fe1c0ac9af2
Fixed
22b5c2acd65dbe949032f619d4758a35a82fffc3
Type
GIT
Repo
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
Events
Introduced
b5aead0064f33ae5e693a364e3204fe1c0ac9af2
Fixed
9b42d1e8e4fe9dc631162c04caa69b0d1860b0f0

Linux / Kernel

Package

Name
Kernel

Affected ranges

Type
ECOSYSTEM
Events
Introduced
0Unknown introduced version / All previous versions are affected
Fixed
5.15.176
Type
ECOSYSTEM
Events
Introduced
5.16.0
Fixed
6.1.122
Type
ECOSYSTEM
Events
Introduced
5.16.0
Fixed
6.6.68
Type
ECOSYSTEM
Events
Introduced
6.2.0
Fixed
6.12.7