CVE-2026-23115: serial: Fix not set tty->port race condition

Published Feb 14, 2026
·
Updated

In the Linux kernel, the following vulnerability has been resolved:

serial: Fix not set tty->port race condition

Revert commit bfc467db60b7 ("serial: remove redundant ttyportlinkdevice()") because the ttyportlinkdevice() is not redundant: the tty->port has to be confured before we call uartconfigureport(), otherwise user-space can open console without TTY linked to the driver.

This ttyportlinkdevice() was added explicitly to avoid this exact issue in commit fb2b90014d78 ("tty: link tty and port before configuring it as console"), so offending commit basically reverted the fix saying it is redundant without addressing the actual race condition presented there.

Reproducible always as tty->port warning on Qualcomm SoC with most of devices disabled, so with very fast boot, and one serial device being the console:

printk: legacy console [ttyMSM0] enabled printk: legacy console [ttyMSM0] enabled printk: legacy bootconsole [qcomgeni0] disabled printk: legacy bootconsole [qcomgeni0] disabled ------------[ cut here ]------------ ttyinitdev: ttyMSM driver does not set tty->port. This would crash the kernel. Fix the driver! WARNING: drivers/tty/ttyio.c:1414 at ttyinitdev.part.0+0x228/0x25c, CPU#2: systemd/1 Modules linked in: socinfo tcsrcceliza gcceliza sm3ce fuse ipv6 CPU: 2 UID: 0 PID: 1 Comm: systemd Tainted: G S 6.19.0-rc4-next-20260108-00024-g2202f4d30aa8 #73 PREEMPT Tainted: [S]=CPUOUTOFSPEC Hardware name: Qualcomm Technologies, Inc. Eliza (DT) ... ttyinitdev.part.0 (drivers/tty/ttyio.c:1414 (discriminator 11)) (P) ttyopen (arch/arm64/include/asm/atomicllsc.h:95 (discriminator 3) drivers/tty/ttyio.c:2073 (discriminator 3) drivers/tty/ttyio.c:2120 (discriminator 3)) chrdevopen (fs/chardev.c:411) dodentryopen (fs/open.c:962) vfsopen (fs/open.c:1094) doopen (fs/namei.c:4634) pathopenat (fs/namei.c:4793) dofilpopen (fs/namei.c:4820) dosysopenat2 (fs/open.c:1391 (discriminator 3)) ... Starting Network Name Resolution...

Apparently the flow with this small Yocto-based ramdisk user-space is:

driver (qcomgeniserial.c): user-space: ============================ =========== qcomgeniserialprobe() uartaddoneport() serialcoreregisterport() serialcoreaddoneport() uartconfigureport() registerconsole() | | open console | ... | ttyinitdev() | driver->ports[idx] is NULL | ttyportregisterdeviceattrserdev() ttyportlinkdevice() <- set driver->ports[idx]

Affected Software

8 affected components
Linux Linux kernel
Linux Linux kernel>=6.15<6.18.8
Linux Linux kernel=6.19-rc1
Linux Linux kernel=6.19-rc2
Linux Linux kernel=6.19-rc3
Linux Linux kernel=6.19-rc4
Linux Linux kernel=6.19-rc5
Linux Linux kernel=6.19-rc6

Event History

Feb 14, 2026
CVE Published
via MITRE·03:09 PM
Data Sourced
via MITRE·03:09 PM
Description
Data Sourced
via NVD·03:16 PM
RemedyDescriptionSeverityWeaknessAffected Software

Contact

SecAlerts Pty Ltd.
132 Wickham Terrace
Fortitude Valley,
QLD 4006, Australia
info@secalerts.co
By using SecAlerts services, you agree to our services end-user license agreement. This website is safeguarded by reCAPTCHA and governed by the Google Privacy Policy and Terms of Service. All names, logos, and brands of products are owned by their respective owners, and any usage of these names, logos, and brands for identification purposes only does not imply endorsement. If you possess any content that requires removal, please get in touch with us.
© 2026 SecAlerts Pty Ltd.
ABN: 70 645 966 203, ACN: 645 966 203