In the Linux kernel, the following vulnerability has been resolved:
powerpc/xive: fix kmemleak caused by incorrect chip_data lookup
The kmemleak reports the following memory leak:
Unreferenced object 0xc0000002a7fbc640 (size 64): comm "kworker/8:1", pid 540, jiffies 4294937872 hex dump (first 32 bytes): 01 00 00 00 00 00 00 00 00 00 09 04 00 04 00 00 ................ 00 00 a7 81 00 00 0a c0 00 00 08 04 00 04 00 00 ................ backtrace (crc 177d48f6): __kmalloc_cache_noprof+0x520/0x730 xive_irq_alloc_data.constprop.0+0x40/0xe0 xive_irq_domain_alloc+0xd0/0x1b0 irq_domain_alloc_irqs_parent+0x44/0x6c pseries_irq_domain_alloc+0x1cc/0x354 irq_domain_alloc_irqs_parent+0x44/0x6c msi_domain_alloc+0xb0/0x220 irq_domain_alloc_irqs_locked+0x138/0x4d0 __irq_domain_alloc_irqs+0x8c/0xfc __msi_domain_alloc_irqs+0x214/0x4d8 msi_domain_alloc_irqs_all_locked+0x70/0xf8 pci_msi_setup_msi_irqs+0x60/0x78 __pci_enable_msix_range+0x54c/0x98c pci_alloc_irq_vectors_affinity+0x16c/0x1d4 nvme_pci_enable+0xac/0x9c0 [nvme] nvme_probe+0x340/0x764 [nvme]
This occurs when allocating MSI-X vectors for an NVMe device. During allocation the XIVE code creates a struct xive_irq_data and stores it in irq_data->chip_data.
When the MSI-X irqdomain is later freed, xive_irq_free_data() is responsible for retrieving this structure and freeing it. However, after commit cc0cc23babc9 ("powerpc/xive: Untangle xive from child interrupt controller drivers"), xive_irq_free_data() retrieves the chip_data using irq_get_chip_data(), which looks up the data through the child domain.
This is incorrect because the XIVE-specific irq data is associated with the XIVE (parent) domain. As a result the lookup fails and the allocated struct xive_irq_data is never freed, leading to the kmemleak report shown above.
Fix this by retrieving the irq_data from the correct domain using irq_domain_get_irq_data() and then accessing the chip_data via irq_data_get_irq_chip_data().
CVSS Details
- CVSS 3.1 Base Score: 5.5
- CVSS 3.1 Vector: (CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H)
Covered by Rapid7
| Product | Vendor Advisory | Solution File | Added | Published |
|---|---|---|---|---|
| Ubuntu | — | Upgrade linux-image-virtualUpgrade linux-image-nvidia-bosUpgrade linux-image-oracleUpgrade linux-image-7.0.0-1014-azureUpgrade linux-image-aws-7.0Upgrade linux-image-nvidia-7.0Upgrade linux-image-realtime-7.0Upgrade linux-image-7.0.0-1009-awsUpgrade linux-image-azure-fdeUpgrade linux-image-oem-24.04bUpgrade linux-image-realtime-64kUpgrade linux-image-awsUpgrade linux-image-7.0.0-28-realtimeUpgrade linux-image-7.0.0-28-genericUpgrade linux-image-aws-64k-7.0Upgrade linux-image-realtime-64k-7.0Upgrade linux-image-7.0.0-1009-oemUpgrade linux-image-realtimeUpgrade linux-image-7.0.0-28-generic-64kUpgrade linux-image-7.0.0-1003-gke-64kUpgrade linux-image-nvidia-bos-64k-7.0Upgrade linux-image-7.0.0-28-realtime-64kUpgrade linux-image-gke-hwe-26.04Upgrade linux-image-7.0.0-1009-azure-fdeUpgrade linux-image-raspi-realtime-7.0Upgrade linux-image-7.0.0-1016-nvidiaUpgrade linux-image-gke-7.0Upgrade linux-image-7.0.0-1008-oracle-64kUpgrade linux-image-7.0.0-1011-gcp-64kUpgrade linux-image-generic-64k-hwe-26.04Upgrade linux-image-gcp-7.0Upgrade linux-image-7.0.0-1015-raspi-realtimeUpgrade linux-image-7.0.0-1015-raspiUpgrade linux-image-generic-64k-hwe-24.04Upgrade linux-image-7.0.0-1008-gcpUpgrade linux-image-azure-fde-7.0Upgrade linux-image-virtual-7.0Upgrade linux-image-gke-64kUpgrade linux-image-oracle-7.0Upgrade linux-image-raspi-7.0Upgrade linux-image-7.0.0-1010-azureUpgrade linux-image-7.0.0-2016-nvidia-bos-64kUpgrade linux-image-7.0.0-1011-oracleUpgrade linux-image-nvidia-bos-7.0Upgrade linux-image-oem-26.04Upgrade linux-image-oem-26.04aUpgrade linux-image-nvidia-64k-7.0Upgrade linux-image-ibm-7.0Upgrade linux-image-gke-64k-hwe-26.04Upgrade linux-image-virtual-hwe-24.04Upgrade linux-image-nvidiaUpgrade linux-image-7.0.0-1003-gkeUpgrade linux-image-nvidia-64k-hwe-26.04Upgrade linux-image-realtime-64k-hwe-26.04Upgrade linux-image-generic-64kUpgrade linux-image-realtime-hwe-26.04Upgrade linux-image-7.0.0-1010-ibmUpgrade linux-image-7.0.0-1008-oracleUpgrade linux-image-oracle-64kUpgrade linux-image-nvidia-bos-64kUpgrade linux-image-7.0.0-1008-gcp-64kUpgrade linux-image-raspi-realtimeUpgrade linux-image-7.0.0-1011-oracle-64kUpgrade linux-image-azureUpgrade linux-image-7.0.0-2016-nvidia-bosUpgrade linux-image-oracle-64k-7.0Upgrade linux-image-oem-24.04Upgrade linux-image-raspiUpgrade linux-image-gcp-64k-7.0Upgrade linux-image-azure-7.0Upgrade linux-image-gkeUpgrade linux-image-oem-24.04cUpgrade linux-image-nvidia-64kUpgrade linux-image-generic-hwe-26.04Upgrade linux-image-generic-hwe-24.04Upgrade linux-image-7.0.0-1009-aws-64kUpgrade linux-image-virtual-hwe-26.04Upgrade linux-image-7.0.0-1016-nvidia-64kUpgrade linux-image-oem-24.04aUpgrade linux-image-oem-7.0Upgrade linux-image-generic-7.0Upgrade linux-image-gcp-64kUpgrade linux-image-ibmUpgrade linux-image-7.0.0-1011-gcpUpgrade linux-image-genericUpgrade linux-image-gcpUpgrade linux-image-aws-64kUpgrade linux-image-gke-64k-7.0Upgrade linux-image-generic-64k-7.0Upgrade linux-image-oem-24.04dUpgrade linux-image-nvidia-hwe-26.04 | Jul 20, 2026 | May 28, 2026 |
Prioritise with Active Threat Intelligence
With curated Threat Intelligence, you can see which vulnerabilities truly put you at risk, prioritize what matters most, and act before attackers do.
Explore Intelligence Hub