serial: imx: serialize imx_uart_ports[] lifetime
- 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.6.160, 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: serial: imx: serialize imx_uart_ports[] lifetime imx_uart_probe() publishes its devm-allocated port in imx_uart_ports[] before uart_add_one_port() because console setup uses the table. The entry is not cleared when adding the port fails or after removal, leaving a dangling pointer. A sibling probe can register the shared console through that stale entry. This was reproduced under KASAN on QEMU mcimx6ul-evk by unbinding a sibling UART, unbinding the console UART and rebinding the sibling. Keep the entry valid through uart_remove_one_port(), then clear it. Protect port addition and removal together with their table updates so sibling operations cannot interleave. Reject an occupied slot rather than clobbering an active port during a duplicate-line probe.
Timeline
- CVE published
- Record last updated
Affected versions
- Linux Linux
Version range not reported
- Linux Linux
2.6.27
- KernelLinux
From 2.6.27 · fixed in 6.6.160; From 6.7.0 · fixed in 6.12.109; From 6.13.0 · fixed in 6.18.50; From 6.19.0 · fixed in 7.2.4
References 7
git.kernel.org
- stable/c/ce9c074868d5c8adfb0c72de4324138d6fa1a1a8
- stable/c/a4acf2739434a014cdfc282175cffd3e35a97fa4
- stable/c/abc17fd508a511669997e48f8b014d8aa043abdf
- stable/c/681696ae9e4a28bdf54893c807dfe4a6c08e30a5
- stable/c/28b932202fcdbeb2ef58d89ce4363f480433c234
- stable/c/7429dce56a73bc080a8c072edb167106f73a08ae
- stable/c/8b0b29fdcb47907ae0296b8fe829e918e05e300f