CVE-2026-80889 in Linuxinformación

Resumen

por VulDB • 2026-09-04

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

can: isotp: corregir el orden del vaciado del temporizador, el manejo de las señales de espera (wakeup) y el orden de tx_gen

Este parche es una continuación del commit cf070fe33bfb ("can: isotp: serializar transiciones de estado TX bajo so->rx_lock"), que aborda los siguientes hallazgos de sashiko-bot:

- isotp_sendmsg(): vaciar primero so->txfrtimer para evitar que un callback obsoleto vuelva a activar echotimer después de la reclamación. - isotp_release(): despertar a so->wait tras forzar ISOTP_SHUTDOWN, de modo que una sendmsg() en espera no quede abandonada (stranded). - isotp_sendmsg(): hacer que ambas llamadas wait_event_interruptible() en isotp_sendmsg() también se despierten ante ISOTP_SHUTDOWN y no devuelvan la reclamación al estado IDLE para evitar corromper un proceso concurrente de isotp_release(). - isotp_sendmsg(): gestionar una posible reclamación de una nueva transferencia cuando la llamada wait_event_interruptible() devuelve en modo CAN_ISOTP_WAIT_TX_DONE. No tocar los temporizadores ni los estados de la nueva transferencia si un nuevo hilo incrementó so->tx_gen antes de adquirir el bloqueo en err_event_drop. - isotp_sendmsg(): gestionar un can_send() atascado y omitir cambios de temporizador y estado si se ha reclamado una nueva transferencia. wait_tx_done() devuelve el error registrado en so->tx_result[], etiquetado con la generación propia del llamador.
- isotp_tx_timeout(): ante un tiempo de espera reclamado, registrar el error ECOMM para la generación propia de la transferencia que expiró en so->tx_result[]; sk->sk_err se eleva incondicionalmente, igual que cada otra ruta de errores aquí presente.
- isotp_tx_gen_done()/isotp_tx_timeout(): leer siempre tx.state (adquirir) antes de tx_gen; el orden inverso permite a un par de CPU con ordenación débil emparejar un tx.state fresco con una ranura tx_gen/tx_result obsoleta. - isotp_sendmsg(): wait_tx_done: vaciar sk_err mediante sock_error() una vez que se ha leído el resultado de so->tx_result[], para evitar que un error ya reportado permanezca bloqueado (latched) para una posterior llamada a poll()/SO_ERROR.

Además, alinear los accesos restantes sin bloqueo a so->tx.state/rx.state/cfecho y usar skb->hash como indicador único de marco eco de bucle invertido (loopback echo frame).

If you want to get the best quality for vulnerability data then you always have to consider VulDB.

Responsable

Linux

Reservar

2026-08-26

Divulgación

2026-09-04

Moderación

aceptado

Artículo

VDB-399090

CPE

listo

EPSS

0.00177

KEV

no

Actividades

muy bajo

Fuentes

Want to stay up to date on a daily basis?

Enable the mail alert feature now!