Katalog CVE

CVE-2026-80889

Niskie ryzyko· EPSS 7%
Opublikowano: Przetłumaczono: NVD NIST

Prawdopodobieństwo exploitacji (EPSS)

Niskie ryzyko
0.18%

Percentyl 7 - wyżej niż 7% wszystkich znanych CVE

Streszczenie

W jądrze Linux naprawiono podatność w module CAN ISO-TP dotyczącą błędów w kolejności wygaszania timerów, obsłudze wybudzania oraz kolejności generowania transakcji (tx_gen). Błędy te mogły prowadzić do wyścigów (race conditions) podczas równoczesnych operacji wysyłania i zamykania gniazda, potencjalnie powodując nieprawidłowe stany, zawieszenia lub uszkodzenie danych.

Ocena ryzyka

Ryzyko obejmuje potencjalne zawieszenie procesów wysyłających, nieprawidłowe działanie protokołu ISO-TP w systemach sterowania pojazdami lub automatyce, a w skrajnych przypadkach możliwość eskalacji uprawnień lub naruszenia integralności danych w wyniku wyścigu.

Rekomendacja

Zaleca się pilne zaktualizowanie jądra Linux do wersji zawierającej poprawkę dla CVE-2026-80889 oraz monitorowanie komunikatów producenta dystrybucji w celu wdrożenia odpowiedniego łatania.

Inne podatności w Linux kernel

Zobacz wszystkie
Oryginalny opis (angielski, źródło NVD)

In the Linux kernel, the following vulnerability has been resolved: can: isotp: fix timer drain order, wakeup handling and tx_gen ordering This patch is a follow-up to commit cf070fe33bfb ("can: isotp: serialize TX state transitions under so->rx_lock") which addresses following sashiko-bot findings: - isotp_sendmsg(): drain so->txfrtimer first so a stale callback can't re-arm echotimer after the claim - isotp_release(): wake so->wait after forcing ISOTP_SHUTDOWN so a sleeping sendmsg() claim isn't stranded - isotp_sendmsg(): have both wait_event_interruptible() calls in isotp_sendmsg() also wake on ISOTP_SHUTDOWN and do not return claim to IDLE to avoid corrupting a concurrent isotp_release() process. - isotp_sendmsg(): handle potential claim of a new transfer when the wait_event_interruptible() call returns in CAN_ISOTP_WAIT_TX_DONE mode. Don't touch timers and states of the new transfer if a new thread incremented so->tx_gen before getting the lock at err_event_drop. - isotp_sendmsg(): handle a stuck can_send() and omit timer and state changes if a new transfer was claimed. wait_tx_done() returns the error recorded in so->tx_result[], tagged with the caller's own generation. - isotp_tx_timeout(): on a claimed timeout, record the ECOMM error for the timed-out transfer's own generation in so->tx_result[]; sk->sk_err is raised unconditionally, same as every other error path here. - isotp_tx_gen_done()/isotp_tx_timeout(): always read tx.state (acquire) before tx_gen - the reverse order let a weakly ordered CPU pair a fresh tx.state with a stale tx_gen/tx_result slot. - isotp_sendmsg(): wait_tx_done: drain sk_err via sock_error() once we have read the result from so->tx_result[], so an already-reported error doesn't stay latched for a later poll()/SO_ERROR. Also align the remaining lock-free so->tx.state/rx.state/cfecho accesses and use skb->hash as unique loopback echo frame indicator.

Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS