CVE-2025-21779CWE-476

CVE-2025-21779

Medium · published February 27, 2025

CVSS v3.1
5.5
EPSS
0%
Percentile
15.6
In the wild
Unconfirmed
What it is

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

KVM: x86: Reject Hyper-V's SEND_IPI hypercalls if local APIC isn't in-kernel

Advertise support for Hyper-V's SEND_IPI and SEND_IPI_EX hypercalls if and

only if the local API is emulated/virtualized by KVM, and explicitly reject

said hypercalls if the local APIC is emulated in userspace, i.e. don't rely

on userspace to opt-in to KVM_CAP_HYPERV_ENFORCE_CPUID.

Rejecting SEND_IPI and SEND_IPI_EX fixes a NULL-pointer dereference if

Hyper-V enlightenments are exposed to the guest without an in-kernel local

APIC:

dump_stack+0xbe/0xfd

__kasan_report.cold+0x34/0x84

kasan_report+0x3a/0x50

__apic_accept_irq+0x3a/0x5c0

kvm_hv_send_ipi.isra.0+0x34e/0x820

kvm_hv_hypercall+0x8d9/0x9d0

kvm_emulate_hypercall+0x506/0x7e0

__vmx_handle_exit+0x283/0xb60

vmx_handle_exit+0x1d/0xd0

vcpu_enter_guest+0x16b0/0x24c0

vcpu_run+0xc0/0x550

kvm_arch_vcpu_ioctl_run+0x170/0x6d0

kvm_vcpu_ioctl+0x413/0xb20

__se_sys_ioctl+0x111/0x160

do_syscal1_64+0x30/0x40

entry_SYSCALL_64_after_hwframe+0x67/0xd1

Note, checking the sending vCPU is sufficient, as the per-VM irqchip_mode

can't be modified after vCPUs are created, i.e. if one vCPU has an

in-kernel local APIC, then all vCPUs have an in-kernel local APIC.

The record
Technical detail
CVSS v3.1
5.5 · MEDIUM
Vector
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H
CVSS v4.0
Not supplied
EPSS
0.00251 · 15.6th percentile
Weakness
CWE-476 · NULL Pointer Dereference
Published
2025-02-27T08:15Z
Affected products (6)
ProductVersionsFixed in
linux/linux_kernel≥ 4.20, < 6.1.1296.1.129
linux/linux_kernel≥ 6.2, < 6.6.796.6.79
linux/linux_kernel≥ 6.7, < 6.12.166.12.16
linux/linux_kernel≥ 6.13, < 6.13.46.13.4
linux/linux_kernelall versions—
linux/linux_kernelall versions—
References (10)
EPSS history
Timeline
  • 27 FEB 02:18Z
    KVM: x86: Reject Hyper-V's SEND_IPI hypercalls if local APIC isn't in-kernel
    cvelistv5