CVE-2026-89973 in Linuxinformación

Resumen

por VulDB • 2026-09-16

En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad:

nvme-tcp: verificar la dirección de datos de un PDU C2HData

`nvme_tcp_handle_c2h_data()` encuentra la solicitud por su ID de comando y verifica que tenga una carga útil (payload), pero no comprueba si el comando solicitaba leer datos. Por lo tanto, un controlador que responde a un comando de escritura con C2HData alcanza `nvme_tcp_recv_data()`, donde `_copy_to_iter()` activa `WARN_ON_ONCE(i->data_source)` y devuelve 0. La ruta de recepción convierte esto en -EFAULT y reinicia el controlador.

No se copian datos, por lo que no se trata de una corrupción de memoria. Lo que obtiene un controlador es una advertencia del kernel que puede generar a voluntad, la cual es fatal en un host iniciado con `panic_on_warn`.

La ruta de envío ya conoce la dirección; consulta `rq_data_dir()` al construir un comando, y `nvme_tcp_handle_r2t()` verifica la longitud y el desplazamiento (offset) de la solicitud que nombra. La ruta C2HData no comprueba en absoluto la dirección.

Rechazar un PDU C2HData cuyo comando no sea una lectura. Rechazarlo falla el comando y reinicia el controlador, tal como lo hace la comprobación vecina en esta función; lo que desaparece es la advertencia.

[ 6.885580] ------------[ corte aquí ]------------
[ 6.886457] ADVERTENCIA: lib/iov_iter.c:193 en _copy_to_iter+0x289/0x1330, CPU#0: kworker/0:1H/71
[ 6.888137] CPU: 0 UID: 0 PID: 71 Comm: kworker/0:1H No contaminado 7.2.0-rc5-NVMETCP-gf5098b6bae76 #1 PREEMPT(lazy)
[ 6.891165] Cola de trabajo (Workqueue): nvme_tcp_wq nvme_tcp_io_work
[ 6.891875] RIP: 0010:_copy_to_iter+0x289/0x1330
[ 6.903739] Rastro de llamada (Call Trace):
[ 6.904085] <TAREA>
[ 6.909254] __skb_datagram_iter+0x433/0x820
[ 6.911026] skb_copy_datagram_iter+0x37/0x120
[ 6.911622] nvme_tcp_recv_skb+0xa07/0x4320
[ 6.913378] __tcp_read_sock+0x1ab/0x810
[ 6.915788] nvme_tcp_try_recv+0x152/0x1e0
[ 6.918222] nvme_tcp_io_work+0x1e4/0x6c0
[ 6.926906] </TAREA>
[ 6.927226] ---[ fin del rastro 0000000000000000 ]---
[ 6.927878] nvme nvme0: la cola 1 falló al copiar los datos de la solicitud 0x71
[ 6.928709] nvme nvme0: recepción fallida: -14

Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.

Responsable

Linux

Reservar

2026-09-11

Divulgación

2026-09-17

Moderación

aceptado

Artículo

VDB-405783

CPE

listo

EPSS

0.00000

KEV

no

Actividades

muy bajo

Fuentes

Are you interested in using VulDB?

Download the whitepaper to learn more about our service!