Description
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.
Affected products
Version statuses are supplied by the assigning organization. Consult the original record for detailed ranges and platform conditions.
Linux Linux
Default version status: unaffected
dbff4e9ea2e83fda89143389bfb229cb29425a32 to < ce9c074868d5c8adfb0c72de4324138d6fa1a1a8affecteddbff4e9ea2e83fda89143389bfb229cb29425a32 to < a4acf2739434a014cdfc282175cffd3e35a97fa4affecteddbff4e9ea2e83fda89143389bfb229cb29425a32 to < abc17fd508a511669997e48f8b014d8aa043abdfaffecteddbff4e9ea2e83fda89143389bfb229cb29425a32 to < 681696ae9e4a28bdf54893c807dfe4a6c08e30a5affecteddbff4e9ea2e83fda89143389bfb229cb29425a32 to < 28b932202fcdbeb2ef58d89ce4363f480433c234affecteddbff4e9ea2e83fda89143389bfb229cb29425a32 to < 7429dce56a73bc080a8c072edb167106f73a08aeaffecteddbff4e9ea2e83fda89143389bfb229cb29425a32 to < 8b0b29fdcb47907ae0296b8fe829e918e05e300faffected
Linux Linux
Default version status: affected
2.6.27affected0 to < 2.6.27unaffected5.15.224 to ≤ 5.15.*unaffected6.1.191 to ≤ 6.1.*unaffected6.6.160 to ≤ 6.6.*unaffected6.12.109 to ≤ 6.12.*unaffected6.18.50 to ≤ 6.18.*unaffected7.2.4 to ≤ 7.2.*unaffected7.3 to ≤ *unaffected
References
- https://git.kernel.org/stable/c/ce9c074868d5c8adfb0c72de4324138d6fa1a1a8 ↗
- https://git.kernel.org/stable/c/a4acf2739434a014cdfc282175cffd3e35a97fa4 ↗
- https://git.kernel.org/stable/c/abc17fd508a511669997e48f8b014d8aa043abdf ↗
- https://git.kernel.org/stable/c/681696ae9e4a28bdf54893c807dfe4a6c08e30a5 ↗
- https://git.kernel.org/stable/c/28b932202fcdbeb2ef58d89ce4363f480433c234 ↗
- https://git.kernel.org/stable/c/7429dce56a73bc080a8c072edb167106f73a08ae ↗
- https://git.kernel.org/stable/c/8b0b29fdcb47907ae0296b8fe829e918e05e300f ↗