* CVE-2026-89455: PCI: plda: Fix use-after-free of event IRQs during teardown
@ 2026-09-11 19:42 Greg Kroah-Hartman
0 siblings, 0 replies; only message in thread
From: Greg Kroah-Hartman @ 2026-09-11 19:42 UTC (permalink / raw)
To: linux-cve-announce; +Cc: Greg Kroah-Hartman
From: Greg Kroah-Hartman <gregkh@kernel.org>
Description
===========
In the Linux kernel, the following vulnerability has been resolved:
PCI: plda: Fix use-after-free of event IRQs during teardown
plda_pcie_irq_domain_deinit() removes pcie->event_domain via
irq_domain_remove(), but the per-event IRQs mapped from that domain
are requested with devm_request_irq() in plda_init_interrupts(). The
actual free_irq() for a devm-managed IRQ is deferred by devres until
after the calling probe()/remove() function returns.
This means irq_domain_remove() can free the domain's internal data
before the deferred free_irq() for IRQs still mapped into it has run.
When devres later processes that deferred cleanup, it can end up
dereferencing the already-freed domain.
Free each event IRQ explicitly with devm_free_irq() before removing
the domain. This triggers the free immediately and removes the IRQ
from the devres tracking list, so devres will not attempt to free it
a second time later.
Also dispose of the event, INTx, and MSI IRQ mappings with
irq_dispose_mapping() before their owning domains are removed.
Finally, guard the calls to irq_set_chained_handler_and_data() for
pcie->irq, pcie->msi_irq, and pcie->intx_irq so they only run when
those fields hold a valid (>0) IRQ number.
This is a pre-existing issue, flagged by automated review during work
on an earlier, unrelated patch to this driver.
Build-tested and boot-tested on StarFive VisionFive v1.2A board
The Linux kernel CVE team has assigned CVE-2026-89455 to this issue.
Affected and fixed versions
===========================
Issue introduced in 6.11 with commit 76c9113968079140cb2f885631db422170f32105 and fixed in 6.12.109 with commit 1d0159e139261996a3ca21798d9114aab2124d3c
Issue introduced in 6.11 with commit 76c9113968079140cb2f885631db422170f32105 and fixed in 6.18.50 with commit 01c2f0c66bd1f892db9c6e82976da6b463cc4427
Issue introduced in 6.11 with commit 76c9113968079140cb2f885631db422170f32105 and fixed in 7.2.4 with commit e3589ca5f2e6477774753a2202c21509428d4701
Issue introduced in 6.11 with commit 76c9113968079140cb2f885631db422170f32105 and fixed in 7.3-rc1 with commit 26b73bae01d6eb81a4a38f36101812f20b2639de
Please see https://www.kernel.org for a full list of currently supported
kernel versions by the kernel community.
Unaffected versions might change over time as fixes are backported to
older supported kernel versions. The official CVE entry at
https://cve.org/CVERecord/?id=CVE-2026-89455
will be updated if fixes are backported, please check that for the most
up to date information about this issue.
Affected files
==============
The file(s) affected by this issue are:
drivers/pci/controller/plda/pcie-plda-host.c
Mitigation
==========
The Linux kernel CVE team recommends that you update to the latest
stable kernel version for this, and many other bugfixes. Individual
changes are never tested alone, but rather are part of a larger kernel
release. Cherry-picking individual commits is not recommended or
supported by the Linux kernel community at all. If however, updating to
the latest release is impossible, the individual changes to resolve this
issue can be found at these commits:
https://git.kernel.org/stable/c/1d0159e139261996a3ca21798d9114aab2124d3c
https://git.kernel.org/stable/c/01c2f0c66bd1f892db9c6e82976da6b463cc4427
https://git.kernel.org/stable/c/e3589ca5f2e6477774753a2202c21509428d4701
https://git.kernel.org/stable/c/26b73bae01d6eb81a4a38f36101812f20b2639de
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2026-09-11 19:50 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-09-11 19:42 CVE-2026-89455: PCI: plda: Fix use-after-free of event IRQs during teardown Greg Kroah-Hartman
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.