CVE-2026-98748: serial: 8250_bcm7271: fix use-after-free in brcmuart_remove()
In the Linux kernel, the following vulnerability has been resolved:
serial: 8250bcm7271: fix use-after-free in brcmuartremove()
brcmuarthandleirq() starts priv->hrt to work around a receive-timeout quirk of the 8250 core when hardware flow control is enabled; the timer callback brcmuarthrtimerfunc() dereferences priv.
brcmuartremove() cancels the hrtimer before it unregisters the port, so a receive-timeout interrupt that arrives in between re-arms the timer. After devm frees priv, the callback runs on freed memory.
Unregister the port before cancelling the hrtimer. serial8250unregisterport() shuts the port down and frees its IRQ, so brcmuarthandleirq() can no longer restart the timer, and the final hrtimercancel() drains any timer that was armed before or during the unregister.
This issue was found by an in-house static analysis tool.
Affected Software
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Compensating control
In brcmuart_remove(), unregister the port before cancelling the hrtimer so callbacks cannot dereference freed priv memory.