Vulnerabilidad en Linux (CVE-2026-23115)
Gravedad:
Pendiente de análisis
Tipo:
No Disponible / Otro tipo
Fecha de publicación:
14/02/2026
Última modificación:
18/02/2026
Descripción
En el kernel de Linux, la siguiente vulnerabilidad ha sido resuelta:<br />
<br />
serial: Corrige la condición de carrera de tty-&gt;port no establecido<br />
<br />
Revertir el commit bfc467db60b7 (&#39;serial: eliminar tty_port_link_device() redundante&#39;) porque tty_port_link_device() no es redundante: el tty-&gt;port tiene que ser configurado antes de que llamemos a uart_configure_port(), de lo contrario, el espacio de usuario puede abrir la consola sin un TTY vinculado al controlador.<br />
<br />
Este tty_port_link_device() fue añadido explícitamente para evitar este problema exacto en el commit fb2b90014d78 (&#39;tty: vincular tty y puerto antes de configurarlo como consola&#39;), por lo que el commit ofensivo básicamente revirtió la corrección diciendo que es redundante sin abordar la condición de carrera real presentada allí.<br />
<br />
Reproducible siempre como advertencia de tty-&gt;port en SoC de Qualcomm con la mayoría de los dispositivos deshabilitados, por lo que con un arranque muy rápido, y un dispositivo serie siendo la consola:<br />
<br />
printk: consola heredada [ttyMSM0] habilitada<br />
printk: consola heredada [ttyMSM0] habilitada<br />
printk: consola de arranque heredada [qcom_geni0] deshabilitada<br />
printk: consola de arranque heredada [qcom_geni0] deshabilitada<br />
------------[ cortar aquí ]------------<br />
tty_init_dev: el controlador ttyMSM no establece tty-&gt;port. Esto haría que el kernel se bloquee. ¡Arregle el controlador!<br />
ADVERTENCIA: drivers/tty/tty_io.c:1414 en tty_init_dev.part.0+0x228/0x25c, CPU#2: systemd/1<br />
Módulos vinculados: socinfo tcsrcc_eliza gcc_eliza sm3_ce fuse ipv6<br />
CPU: 2 UID: 0 PID: 1 Comm: systemd Tainted: G S 6.19.0-rc4-next-20260108-00024-g2202f4d30aa8 #73 PREEMPT<br />
Tainted: [S]=CPU_OUT_OF_SPEC<br />
Nombre del hardware: Qualcomm Technologies, Inc. Eliza (DT)<br />
...<br />
tty_init_dev.part.0 (drivers/tty/tty_io.c:1414 (discriminador 11)) (P)<br />
tty_open (arch/arm64/include/asm/atomic_ll_sc.h:95 (discriminador 3) drivers/tty/tty_io.c:2073 (discriminador 3) drivers/tty/tty_io.c:2120 (discriminador 3))<br />
chrdev_open (fs/char_dev.c:411)<br />
do_dentry_open (fs/open.c:962)<br />
vfs_open (fs/open.c:1094)<br />
do_open (fs/namei.c:4634)<br />
path_openat (fs/namei.c:4793)<br />
do_filp_open (fs/namei.c:4820)<br />
do_sys_openat2 (fs/open.c:1391 (discriminador 3))<br />
...<br />
Iniciando la resolución de nombres de red...<br />
<br />
Aparentemente, el flujo con este pequeño espacio de usuario de ramdisk basado en Yocto es:<br />
<br />
controlador (qcom_geni_serial.c): espacio de usuario:<br />
============================ ===========<br />
qcom_geni_serial_probe()<br />
uart_add_one_port()<br />
serial_core_register_port()<br />
serial_core_add_one_port()<br />
uart_configure_port()<br />
register_console()<br />
|<br />
| abrir consola<br />
| ...<br />
| tty_init_dev()<br />
| driver-&gt;ports[idx] es NULL<br />
|<br />
tty_port_register_device_attr_serdev()<br />
tty_port_link_device() &lt;- establece driver-&gt;ports[idx]



