CVE-2026-63798

Summary

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

irqchip/imgpdc: Fix resource leak, add missing chained handler cleanup on remove

The driver allocates domain generic chips using irq_alloc_domain_generic_chips() during probe and sets up chained handlers using irq_set_chained_handler_and_data(). However, on driver removal, the generic chips are not freed and the chained handlers are not removed.

The generic chips remain on the global gc_list and may later be accessed by generic interrupt chip suspend, resume, or shutdown callbacks after the driver has been removed, potentially resulting in a use-after-free and kernel crash.

The chained handlers that were installed in probe for peripheral and syswake interrupts are also left dangling, which can lead to spurious interrupts accessing freed memory.

Fix these issues by:

  • Setting IRQ_DOMAIN_FLAG_DESTROY_GC flag in domain->flags, so the core code automatically removes generic chips when irq_domain_remove() is called

  • Clearing all chained handlers with NULL in pdc_intc_remove()

Affected Software

VendorProductVersion RangeStatus
LinuxLinuxb6ef9161e43ad58c3824bd76dc87716276f0cd70 < 8176773dfceae7978b01c20b233693e072053700affected
LinuxLinuxb6ef9161e43ad58c3824bd76dc87716276f0cd70 < c2c7733101bb8c0b29ac9ee41073eaf602821a59affected
LinuxLinuxb6ef9161e43ad58c3824bd76dc87716276f0cd70 < 83d7ec14b0938ad8cae008058fd6f912f4a9a312affected
LinuxLinuxb6ef9161e43ad58c3824bd76dc87716276f0cd70 < 44567537a2623dcd2b4018a7f043cf8069579e5daffected
LinuxLinuxb6ef9161e43ad58c3824bd76dc87716276f0cd70 < 41826e5297e67cd96a0a46fde06a5069a8ce436aaffected
LinuxLinuxb6ef9161e43ad58c3824bd76dc87716276f0cd70 < b3a3831b2eb884641906fc5e46207b205b6aea13affected
LinuxLinuxb6ef9161e43ad58c3824bd76dc87716276f0cd70 < 0405a65e4ebd9eac13a765f9f02ac05851ca5421affected
LinuxLinuxb6ef9161e43ad58c3824bd76dc87716276f0cd70 < 37738fdf2ab1e504d1c63ce5bc0aeb6452d8f057affected
LinuxLinux3.12affected
LinuxLinux0 < 3.12unaffected
LinuxLinux5.10.260 <= 5.10.*unaffected
LinuxLinux5.15.211 <= 5.15.*unaffected
LinuxLinux6.1.177 <= 6.1.*unaffected
LinuxLinux6.6.144 <= 6.6.*unaffected
LinuxLinux6.12.95 <= 6.12.*unaffected
LinuxLinux6.18.38 <= 6.18.*unaffected
LinuxLinux7.1.3 <= 7.1.*unaffected
LinuxLinux7.2-rc1 <= *unaffected

Weaknesses

References