Description
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.
Product status
cc2d3216f53c9fff0030eb71cacc4ce5f39d1d7e (git) before e332b3b69e5b3acf07204a4b185071bab15c2b88
cc2d3216f53c9fff0030eb71cacc4ce5f39d1d7e (git) before e2f9c751f73a2d5bb62d94ab030aec118a811f27
cc2d3216f53c9fff0030eb71cacc4ce5f39d1d7e (git) before 85215d633983233809f7d4dad163b953331b8238
cc2d3216f53c9fff0030eb71cacc4ce5f39d1d7e (git) before 1b323391560354d8c515de8658b057a1daa82adb
cc2d3216f53c9fff0030eb71cacc4ce5f39d1d7e (git) before 084ba3b99f2dfd991ce7e84fb17117319ec3cd9f
cc2d3216f53c9fff0030eb71cacc4ce5f39d1d7e (git) before 03faa61eb4b9ca9aa09bd91d4c3773d8e7b1ac98
cc2d3216f53c9fff0030eb71cacc4ce5f39d1d7e (git) before 8d76a7d89c12d08382b66e2f21f20d0627d14859
3.19
Any version before 3.19
5.10.249 (semver)
5.15.199 (semver)
6.1.162 (semver)
6.6.122 (semver)
6.12.68 (semver)
6.18.8 (semver)
6.19 (original_commit_for_fix)
References
git.kernel.org/...c/e332b3b69e5b3acf07204a4b185071bab15c2b88
git.kernel.org/...c/e2f9c751f73a2d5bb62d94ab030aec118a811f27
git.kernel.org/...c/85215d633983233809f7d4dad163b953331b8238
git.kernel.org/...c/1b323391560354d8c515de8658b057a1daa82adb
git.kernel.org/...c/084ba3b99f2dfd991ce7e84fb17117319ec3cd9f
git.kernel.org/...c/03faa61eb4b9ca9aa09bd91d4c3773d8e7b1ac98
git.kernel.org/...c/8d76a7d89c12d08382b66e2f21f20d0627d14859