PCI: plda: Fix IRQ domain leaks in the error paths of plda_init_interrupts()
- Published
- Last modified
- Where the record stands: published, rejected by its publisher, or superseded by another id.What do these mean? →
- published
- Whether CISA lists it in its Known Exploited Vulnerabilities catalog: proof that attackers are using it.What do these mean? →
- Not listed in CISA KEV
- Fix
- Fixed in 6.12.109, 6.18.50, 7.2.4
- Whether working attack code is public (Exploit-DB, Metasploit, Nuclei or GitHub). Public code makes attacks easier.What do these mean? →
- None on Exploit-DB, Metasploit or GitHub
Summary
In the Linux kernel, the following vulnerability has been resolved: PCI: plda: Fix IRQ domain leaks in the error paths of plda_init_interrupts() plda_init_interrupts() initializes IRQ domains and creates IRQ mapping but does not unwind them when later step fails. If platform_get_irq() or either irq_create_mapping() fails in plda_init_interrupts(), the domains are never deinitialized. If irq_create_mapping() fails, port->intx_irq stays initialized. Hence, remove the IRQ domains in the error path by calling plda_pcie_irq_domain_deinit(). Since plda_pcie_irq_domain_deinit() now disposes of the intx_irq and msi_irq mappings itself before removing their domains, the msi_irq mapping failure path can go directly to err_irq_domain_deinit instead of disposing of port->intx_irq separately first. This issue was found by automated review of sashiko-bot [mani: commit log]
Timeline
- CVE published
- Record last updated
Affected versions
- Linux Linux
From 4602c370bdf6946b4e954a3db0ef5958aac2b7b4 · fixed in 01b05cebe1e862e31e382359848d7dca02525a4f; From 4602c370bdf6946b4e954a3db0ef5958aac2b7b4 · fixed in 4b575052ea65423693726a21826d783cf3f1745e; From 4602c370bdf6946b4e954a3db0ef5958aac2b7b4 · fixed in e54e8d2a0f9c8bf251ae4385ea4f4a68840fedad; From 4602c370bdf6946b4e954a3db0ef5958aac2b7b4 · fixed in 19a30bbb6477bfd7e3109b7a2943e6597ee9de37
- Linux Linux
6.11
- KernelLinux
From 6.11.0 · fixed in 6.12.109; From 6.13.0 · fixed in 6.18.50; From 6.19.0 · fixed in 7.2.4