Skip to main content
← All vulnerabilities
CVE-2026-23085

irqchip/gic-v3-its: Avoid truncating memory addresses

Published
Last modified
published
Not listed in CISA KEV
Fix
Fixed in 5.10.249, 5.15.199, 6.1.162, 6.6.122, 6.12.68, and 1 more
None on Exploit-DB, Metasploit or GitHub
  • Exploitation: none
  • Automatable: no
  • Technical impact: partial

Summary

In the Linux kernel, the following vulnerability has been resolved: irqchip/gic-v3-its: Avoid truncating memory addresses On 32-bit machines with CONFIG_ARM_LPAE, it is possible for lowmem allocations to be backed by addresses physical memory above the 32-bit address limit, as found while experimenting with larger VMSPLIT configurations. This caused the qemu virt model to crash in the GICv3 driver, which allocates the 'itt' object using GFP_KERNEL. Since all memory below the 4GB physical address limit is in ZONE_DMA in this configuration, kmalloc() defaults to higher addresses for ZONE_NORMAL, and the ITS driver stores the physical address in a 32-bit 'unsigned long' variable. Change the itt_addr variable to the correct phys_addr_t type instead, along with all other variables in this driver that hold a physical address. The gicv5 driver correctly uses u64 variables, while all other irqchip drivers don't call virt_to_phys or similar interfaces. It's expected that other device drivers have similar issues, but fixing this one is sufficient for booting a virtio based guest.

Timeline

  1. CVE published
  2. CISA SSVC assessment

    Exploitation: none · Automatable: no · Technical impact: partial

  3. Record last updated

Affected versions

  • Linux Linux

    From cc2d3216f53c9fff0030eb71cacc4ce5f39d1d7e · fixed in e332b3b69e5b3acf07204a4b185071bab15c2b88; From cc2d3216f53c9fff0030eb71cacc4ce5f39d1d7e · fixed in e2f9c751f73a2d5bb62d94ab030aec118a811f27; From cc2d3216f53c9fff0030eb71cacc4ce5f39d1d7e · fixed in 85215d633983233809f7d4dad163b953331b8238; From cc2d3216f53c9fff0030eb71cacc4ce5f39d1d7e · fixed in 1b323391560354d8c515de8658b057a1daa82adb; From cc2d3216f53c9fff0030eb71cacc4ce5f39d1d7e · fixed in 084ba3b99f2dfd991ce7e84fb17117319ec3cd9f; From cc2d3216f53c9fff0030eb71cacc4ce5f39d1d7e · fixed in 03faa61eb4b9ca9aa09bd91d4c3773d8e7b1ac98; From cc2d3216f53c9fff0030eb71cacc4ce5f39d1d7e · fixed in 8d76a7d89c12d08382b66e2f21f20d0627d14859

  • Linux Linux

    3.19

  • KernelLinux

    From 3.19.0 · fixed in 5.10.249; From 5.11.0 · fixed in 5.15.199; From 5.16.0 · fixed in 6.1.162; From 6.2.0 · fixed in 6.6.122; From 6.7.0 · fixed in 6.12.68; From 6.13.0 · fixed in 6.18.8

References 7

git.kernel.org