CVE-2025-21779
Severity CVSS v4.0:
Pending analysis
Type:
CWE-476
NULL Pointer Dereference
Publication date:
27/02/2025
Last modified:
10/04/2025
Description
In the Linux kernel, the following vulnerability has been resolved:<br />
<br />
KVM: x86: Reject Hyper-V&#39;s SEND_IPI hypercalls if local APIC isn&#39;t in-kernel<br />
<br />
Advertise support for Hyper-V&#39;s SEND_IPI and SEND_IPI_EX hypercalls if and<br />
only if the local API is emulated/virtualized by KVM, and explicitly reject<br />
said hypercalls if the local APIC is emulated in userspace, i.e. don&#39;t rely<br />
on userspace to opt-in to KVM_CAP_HYPERV_ENFORCE_CPUID.<br />
<br />
Rejecting SEND_IPI and SEND_IPI_EX fixes a NULL-pointer dereference if<br />
Hyper-V enlightenments are exposed to the guest without an in-kernel local<br />
APIC:<br />
<br />
dump_stack+0xbe/0xfd<br />
__kasan_report.cold+0x34/0x84<br />
kasan_report+0x3a/0x50<br />
__apic_accept_irq+0x3a/0x5c0<br />
kvm_hv_send_ipi.isra.0+0x34e/0x820<br />
kvm_hv_hypercall+0x8d9/0x9d0<br />
kvm_emulate_hypercall+0x506/0x7e0<br />
__vmx_handle_exit+0x283/0xb60<br />
vmx_handle_exit+0x1d/0xd0<br />
vcpu_enter_guest+0x16b0/0x24c0<br />
vcpu_run+0xc0/0x550<br />
kvm_arch_vcpu_ioctl_run+0x170/0x6d0<br />
kvm_vcpu_ioctl+0x413/0xb20<br />
__se_sys_ioctl+0x111/0x160<br />
do_syscal1_64+0x30/0x40<br />
entry_SYSCALL_64_after_hwframe+0x67/0xd1<br />
<br />
Note, checking the sending vCPU is sufficient, as the per-VM irqchip_mode<br />
can&#39;t be modified after vCPUs are created, i.e. if one vCPU has an<br />
in-kernel local APIC, then all vCPUs have an in-kernel local APIC.
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:*:*:*:*:*:*:*:* | 4.20 (including) | 6.1.129 (excluding) |
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.2 (including) | 6.6.79 (excluding) |
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.7 (including) | 6.12.16 (excluding) |
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.13 (including) | 6.13.4 (excluding) |
cpe:2.3:o:linux:linux_kernel:6.14:rc1:*:*:*:*:*:* | ||
cpe:2.3:o:linux:linux_kernel:6.14: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/45fa526b0f5a34492ed0536c3cdf88b78380e4de
- https://git.kernel.org/stable/c/5393cf22312418262679eaadb130d608c75fe690
- https://git.kernel.org/stable/c/61224533f2b61e252b03e214195d27d64b22989a
- https://git.kernel.org/stable/c/874ff13c73c45ecb38cb82191e8c1d523f0dc81b
- https://git.kernel.org/stable/c/a8de7f100bb5989d9c3627d3a223ee1c863f3b69
- https://git.kernel.org/stable/c/aca8be4403fb90db7adaf63830e27ebe787a76e8
- https://git.kernel.org/stable/c/ca29f58ca374c40a0e69c5306fc5c940a0069074