ZeroHour

CVE-2026-89769

niche

IRQ leak use-after-free in Linux kernel NXP PIT clocksource driver

CVSS 3.1
7.4 high
EPSS
Published
()
Modified
AI analysis

The Linux kernel's NXP PIT (Periodic Interrupt Timer) clocksource driver fails to clean up correctly when driver initialization partially fails: if pit_clockevent_per_cpu_init successfully calls request_irq but the subsequent cpuhp_setup_state fails, the error path jumps directly to clocksource unregistration and kfree(pit) without releasing the IRQ. This leaves the IRQ line leaked and a dangling pointer registered as the interrupt handler's dev_id, so if that IRQ fires afterwards the kernel performs a use-after-free, rated CVSS 3.1 7.4 (AV:L/AC:H) with high impact on confidentiality, integrity and availability for a local attacker. Affected systems are devices running vulnerable kernels on NXP SoCs whose timer block is managed by the nxp-pit driver, such as Vybrid-class parts historically served by this driver in embedded boards. Exploitation is unlikely in practice because it requires the rarely-hit cpuhp_setup_state failure path during boot/probe as well as local access, and no public proof-of-concept exists. The flaw is not on the CISA KEV list and there is no evidence of in-the-wild exploitation.

What to do: Apply kernel or SoC-vendor BSP updates that include the nxp-pit fix, which calls pit_clockevent_per_cpu_exit to release the IRQ before the existing cleanup chain. Teams maintaining NXP-based boards should backport this small patch. Practical risk is low because triggering requires the rarely-hit cpuhp_setup_state failure path during initialization, but the fix is cheap to take in the next maintenance cycle.

Affected
Linux (kernel.org) Linux kernel, clocksource/drivers/nxp-pit (NXP Periodic Interrupt Timer driver)
Estimated exposure
nicheunknown (no counts exist; only devices on NXP SoCs using the PIT timer block run this driver) — The nxp-pit driver is hardware-specific to NXP PIT-timer SoCs found in embedded boards, and no public install counts or internet-exposure scan data exist for that population, so no defensible order-of-magnitude number can be given.

Order-of-magnitude estimate by the model from install counts, market share and public scan data it knows; verify before quoting.

Description

In the Linux kernel, the following vulnerability has been resolved: clocksource/drivers/nxp-pit: Fix IRQ leak on cpuhp_setup_state error path When cpuhp_setup_state fails after pit_clockevent_per_cpu_init has successfully called request_irq, the error handling jumps directly to out_pit_clocksource_unregister without freeing the registered IRQ. This leaks the IRQ line and, since kfree(pit) follows, leaves a dangling pointer registered as the interrupt handler's dev_id, potentially leading to a use-after-free if the IRQ fires afterwards. Fix it by calling pit_clockevent_per_cpu_exit to properly release the IRQ before falling through to the existing cleanup chain.

Vector
CVSS:3.1/AV:L/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H

In the news

No ingested article mentions this CVE yet.