CVE-2026-23115: serial: Fix not set tty->port race condition
In the Linux kernel, the following vulnerability has been resolved:
serial: Fix not set tty->port race condition
Revert commit bfc467db60b7 ("serial: remove redundant
tty_port_link_device()") because the tty_port_link_device() is not
redundant: the tty->port has to be confured before we call
uart_configure_port(), otherwise user-space can open console without TTY
linked to the driver.
This tty_port_link_device() 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 [qcom_geni0] disabled
printk: legacy bootconsole [qcom_geni0] disabled
------------[ cut here ]------------
tty_init_dev: ttyMSM driver does not set tty->port. This would crash the kernel. Fix the driver!
WARNING: drivers/tty/tty_io.c:1414 at tty_init_dev.part.0+0x228/0x25c, CPU#2: systemd/1
Modules linked in: socinfo tcsrcc_eliza gcc_eliza sm3_ce 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]=CPU_OUT_OF_SPEC
Hardware name: Qualcomm Technologies, Inc. Eliza (DT)
...
tty_init_dev.part.0 (drivers/tty/tty_io.c:1414 (discriminator 11)) (P)
tty_open (arch/arm64/include/asm/atomic_ll_sc.h:95 (discriminator 3) drivers/tty/tty_io.c:2073 (discriminator 3) drivers/tty/tty_io.c:2120 (discriminator 3))
chrdev_open (fs/char_dev.c:411)
do_dentry_open (fs/open.c:962)
vfs_open (fs/open.c:1094)
do_open (fs/namei.c:4634)
path_openat (fs/namei.c:4793)
do_filp_open (fs/namei.c:4820)
do_sys_openat2 (fs/open.c:1391 (discriminator 3))
...
Starting Network Name Resolution...
Apparently the flow with this small Yocto-based ramdisk user-space is:
driver (qcom_geni_serial.c): user-space:
============================ ===========
qcom_geni_serial_probe()
uart_add_one_port()
serial_core_register_port()
serial_core_add_one_port()
uart_configure_port()
register_console()
|
| open console
| ...
| tty_init_dev()
| driver->ports[idx] is NULL
|
tty_port_register_device_attr_serdev()
tty_port_link_device() <- set driver->ports[idx]
Security readout for executives and security teams
Plain-English summary
This is a Linux kernel serial console race condition. During fast boot, user space may open a console before the kernel links the TTY to its driver port. The source shows a warning that this condition could crash the kernel. Business impact is mainly availability risk on affected Linux systems, especially embedded or appliance builds using serial console paths.
Executive priority
Medium operational priority for Linux fleets with embedded devices, appliances, or serial-console boot paths. Lower urgency for systems without the affected kernel lineage or serial-console exposure. Escalate if vendors publish a severity score, broader affected range, or exploitation evidence.
Technical view
The offending change removed tty_port_link_device(), delaying tty->port setup until after uart_configure_port(). register_console() can expose the console before driver->ports[idx] is populated, allowing tty_init_dev() to hit an unsafe missing-port condition. The provided reproduction is on a Qualcomm SoC with a small Yocto ramdisk and one serial device as console.
Likely exposure
Exposure appears limited to affected Linux kernel versions or backports containing commit bfc467db60b76c30ca1f7f02088a219b6d5b6e8c without the stable fixes. Systems with serial console during fast boot, such as embedded Linux or Qualcomm SoC devices, are the clearest candidates.
Exploitation context
The bundle provides no KEV listing, no CVSS score, and no evidence of active exploitation. The described trigger is a boot-time race where local user space opens the console during serial-port initialization. Treat it as a reliability and availability issue unless vendor advisories add more impact detail.
Researcher notes
The source evidence is precise about root cause and reproduction, but incomplete on attacker model, privilege requirements, crash reliability beyond the cited setup, and affected downstream distributions. Avoid assuming remote exploitability or universal Linux exposure without vendor confirmation.
Mitigation direction
Apply a kernel update containing the referenced stable fix commits.
Confirm distro or device-vendor kernels have backported the tty_port_link_device() restoration.
Prioritize embedded, appliance, and serial-console Linux deployments first.
Check vendor guidance if no patched kernel is currently available.
Validation and detection
Inventory Linux kernel versions against the affected versions listed in the CVE bundle.
Verify whether either referenced stable commit is present in the running kernel source or changelog.
Review boot logs for tty_init_dev warnings about drivers not setting tty->port.
Test representative serial-console boot paths after patching.
Generated from the cited source records. This long-tail analysis has not been individually reviewed by a named human.
Potential ATT&CK relevance
Conservative CVE-to-ATT&CK context
These mappings and lookup hints may be relevant to the vulnerability behavior, CWE, affected product, or exposure path. Glexia-inferred context is not an official MITRE, ATT&CK, CWE, or CVE Program mapping.
ATT&CK lookup starting points
Use these exact CWE pages and searches to review the Glexia ATT&CK library from this CVE's weakness and description context.
cve · low confidence lookup
CVE-2026-23115 mapping review
Open the CVE-to-ATT&CK bridge for reviewed, inferred, or future official mappings tied to this CVE.
These fields come from the CVE record and ADP containers, not from Glexia's Take. They preserve time-varying source decisions such as CISA SSVC, KEV status, CVSS metrics, and provider references.
0CVSS vectors
3Timeline events
0ADP providers
3Source links
Vulnerability timeline
Timeline events are normalized from CVE metadata, CNA source timelines, ADP timelines, and KEV metadata when present.
CVE reservedCVE Program
The CVE ID was reserved by the assigning CNA.
CVE publishedCVE Program
The CVE record was published.
Feb 14, 2026, 15:09 UTC (UTC+00:00)
CVE updatedCVE Program
The CVE record metadata indicates this as the latest update time.