CVE-2026-80889 in Linuxinformazioni

Riassunto

di VulDB • 04/09/2026

Nel kernel Linux, è stata risolta la seguente vulnerabilità:

can: isotp: corretto l'ordine di drain dei timer, la gestione delle wakeup e l'ordinamento di tx_gen

Questo patch è un seguito al commit cf070fe33bfb ("can: isotp: serialize TX state transitions under so->rx_lock") che affronta le seguenti problematiche rilevate da sashiko-bot:

- isotp_sendmsg(): eseguire il drain di so->txfrtimer per primo, in modo che un callback obsoleto non possa riattivare echotimer dopo la richiesta (claim). - isotp_release(): risvegliare so->wait dopo aver forzato ISOTP_SHUTDOWN, affinché una sendmsg() in attesa non rimanga bloccata. - isotp_sendmsg(): far sì che entrambe le chiamate wait_event_interruptible() in isotp_sendmsg() si sveglino anche su ISOTP_SHUTDOWN e non restituiscano la richiesta (claim) allo stato IDLE per evitare di corrompere un processo concurrente di isotp_release(). - isotp_sendmsg(): gestire una potenziale richiesta (claim) di una nuova trasmissione quando la chiamata wait_event_interruptible() restituisce in modalità CAN_ISOTP_WAIT_TX_DONE. Non modificare i timer e gli stati della nuova trasmissione se un nuovo thread ha incrementato so->tx_gen prima di acquisire il lock su err_event_drop. - isotp_sendmsg(): gestire un can_send() bloccato ed omettere le modifiche ai timer e agli stati se una nuova trasmissione è stata richiesta (claim). wait_tx_done() restituisce l'errore registrato in so->tx_result[], contrassegnato con la generazione del chiamante.
- isotp_tx_timeout(): su un timeout richiesto (claimed), registrare l'errore ECOMM per la generazione della trasmissione scaduta in so->tx_result[]; sk->sk_err viene impostata incondizionatamente, come ogni altro percorso di errore qui presente.
- isotp_tx_gen_done()/isotp_tx_timeout(): leggere sempre tx.state (acquire) prima di tx_gen: l'ordine inverso permette a una coppia CPU con ordinamento debole di accoppiare un tx.state fresco con uno slot tx_gen/tx_result obsoleto. - isotp_sendmsg(): wait_tx_done: eseguire il drain di sk_err tramite sock_error() dopo aver letto il risultato da so->tx_result[], in modo che un errore già segnalato non rimanga bloccato per una successiva poll()/SO_ERROR.

Allineare inoltre gli accessi lock-free rimanenti a so->tx.state/rx.state/cfecho e utilizzare skb->hash come indicatore unico del frame di eco loopback.

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

Responsabile

Linux

Prenotare

26/08/2026

Divulgazione

04/09/2026

Moderazione

accettato

CPE

pronto

EPSS

0.00177

KEV

no

Attività

molto basso

Fonti

Want to stay up to date on a daily basis?

Enable the mail alert feature now!