irqchip/gic-v4: Don't advertise VLPIs if no ITS is probed
- Published
- Last modified
- Where the record stands: published, rejected by its publisher, or superseded by another id.What do these mean? →
- published
- Whether CISA lists it in its Known Exploited Vulnerabilities catalog: proof that attackers are using it.What do these mean? →
- Not listed in CISA KEV
- Fix
- Fixed in 5.10.271, 5.15.222, 6.1.189, 6.6.158, 6.12.111, and 1 more
- Whether working attack code is public (Exploit-DB, Metasploit, Nuclei or GitHub). Public code makes attacks easier.What do these mean? →
- None on Exploit-DB, Metasploit or GitHub
Summary
The Linux kernel's ARM GICv4 interrupt controller support, used when KVM virtualization is enabled, can crash the system with a NULL pointer dereference on hardware that has a GICv4 controller but no MSI/ITS device tree node. The flaw lets the kernel advertise virtual LPI capability without a usable ITS, leading to a kernel panic.
Summarized by anthropic/claude-haiku-5.5. Verify details against the original sources.
Read the original description
In the Linux kernel, the following vulnerability has been resolved: irqchip/gic-v4: Don't advertise VLPIs if no ITS is probed When accidentally setting “kvm-arm.vgic_v4_enable=1” on a system that has no MSI controller device tree node and GICv4, it results a panic as “gic_domain” is NULL and the kernel attempts to access it. Unable to handle kernel NULL pointer dereference at virtual address 0000000000000028 Mem abort info: ESR = 0x0000000096000006 CPU: 1 UID: 0 PID: 295 Comm: lkvm-static Not tainted 7.1.0-rc4-ge3f15ad3970e #5 PREEMPT Hardware name: linux,dummy-virt (DT) pstate: 81402005 (Nzcv daif +PAN -UAO -TCO +DIT -SSBS BTYPE=--) pc : __irq_domain_instantiate+0x1d4/0x578 lr : __irq_domain_instantiate+0x1cc/0x578 Set vLPI support to false at init time if the host has no ITS, so it propagates properly to kvm_vgic_global_state.has_gicv4.
Timeline
- CVE published
- First seen by cve.now
- Record last updated
Affected versions
- Linux Linux
From a75460547e13c99762c2f9dbfcdd13ad416f91c5 · fixed in 3e4cae9f1472ba3c9fe87edee24074618b51f537; From a75460547e13c99762c2f9dbfcdd13ad416f91c5 · fixed in a2508b8855acc96abe69be73b41b672f1ef12516; From a75460547e13c99762c2f9dbfcdd13ad416f91c5 · fixed in e79934064be85fc9a3a6434da857307d8b78e33d; From a75460547e13c99762c2f9dbfcdd13ad416f91c5 · fixed in 4761493dd663443f7353c184e6fa16e1cb3ac5a1; From a75460547e13c99762c2f9dbfcdd13ad416f91c5 · fixed in ab233119a19716b8f33e73ea7e092e0eb353cfbf; From a75460547e13c99762c2f9dbfcdd13ad416f91c5 · fixed in c8a911b3b07baa0aeb3dbc4e16a4670bd21bed40; From a75460547e13c99762c2f9dbfcdd13ad416f91c5 · fixed in e61654fbc3bc5d07ec9fafe29f33e19b2b5d0fd5
- Linux Linux
4.15
- KernelLinux
fixed in 5.10.271; From 5.11.0 · fixed in 5.15.222; From 5.16.0 · fixed in 6.1.189; From 6.2.0 · fixed in 6.6.158; From 6.7.0 · fixed in 6.12.111; From 6.13.0 · fixed in 6.18.53
References 7
git.kernel.org
- stable/c/3e4cae9f1472ba3c9fe87edee24074618b51f537
- stable/c/a2508b8855acc96abe69be73b41b672f1ef12516
- stable/c/e79934064be85fc9a3a6434da857307d8b78e33d
- stable/c/4761493dd663443f7353c184e6fa16e1cb3ac5a1
- stable/c/ab233119a19716b8f33e73ea7e092e0eb353cfbf
- stable/c/c8a911b3b07baa0aeb3dbc4e16a4670bd21bed40
- stable/c/e61654fbc3bc5d07ec9fafe29f33e19b2b5d0fd5