CVE-2026-93072: irqchip/renesas-irqc: Fix generic interrupt chip leak on remove
In the Linux kernel, the following vulnerability has been resolved:
irqchip/renesas-irqc: Fix generic interrupt chip leak on remove
The driver allocates domain generic chips probe. However, on driver removal, the generic chips are not automatically freed when the interrupt domain is removed because the domain flags do not include IRQDOMAINFLAGDESTROYGC.
This causes both the domain generic chips structure and the associated generic chips to be leaked. Additionally, the generic chips remain on the global 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.
Fix the resource leak by setting IRQDOMAINFLAGDESTROYGC on the interrupt domain; this lets the interrupt domain core automatically release all generic chips when irqdomainremove() is invoked, removing the need for manual cleanup calls in error paths and remove callback.
Affected Software
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Configuration
Fix the resource leak by ensuring the irq domain flags include IRQ_DOMAIN_FLAG_DESTROY_GC so that when irq_domain_remove() is invoked the domain generic chips and the associated domain are removed and generic chips are released, preventing the use-after-free/kernel crash.
Linux kernel (irqchip/renesas-irqc driver) IRQ_DOMAIN_FLAG_DESTROY_GC = set on the irq domain flags passed to the interrupt domain core
Event History
Frequently Asked Questions
When can the stale generic interrupt chips be accessed after the driver is removed?
They can remain on the global generic interrupt chip list after removal and may be accessed later by generic interrupt chip suspend, resume, or shutdown callbacks. This can result in a use-after-free and kernel crash.
What cleanup change resolves the issue?
The interrupt domain must include IRQ_DOMAIN_FLAG_DESTROY_GC. This causes the interrupt-domain core to release all generic chips when irq_domain_remove() runs, including during driver removal.