CVE-2026-80889 in Linux
Zusammenfassung
von VulDB • 04.09.2026
Im Linux-Kernel wurde folgende Schwachstelle behoben:
can: isotp: Reihenfolge des Timer-Drainings, Wakeup-Behandlung und tx_gen-Reihenfolge korrigieren
Dieser Patch ist eine Folge von Commit cf070fe33bfb ("can: isotp: TX-Zustandsübergänge unter so->rx_lock serialisieren"), der die folgenden sashiko-bot-Erkenntnisse adressiert:
- isotp_sendmsg(): Zuerst so->txfrtimer leeren, damit ein veralteter Callback den echotimer nach dem Claim nicht wieder aktivieren kann. - isotp_release(): so->wait nach Erzwingung von ISOTP_SHUTDOWN wecken, sodass eine schlafende sendmsg()-Anforderung (Claim) nicht hängen bleibt. - isotp_sendmsg(): Beide wait_event_interruptible() Aufrufe in isotp_sendmsg() müssen auch auf ISOTP_SHUTDOWN reagieren und den Claim nicht an IDLE zurückgeben, um einen parallelen isotp_release()-Prozess nicht zu beschädigen. - isotp_sendmsg(): Potenziellen Claim einer neuen Übertragung behandeln, wenn der wait_event_interruptible() Aufruf im CAN_ISOTP_WAIT_TX_DONE-Modus zurückkehrt. Timer und Zustände der neuen Übertragung dürfen nicht berührt werden, falls ein neuer Thread so->tx_gen erhöht hat, bevor er die Sperre bei err_event_drop erhalten hat. - isotp_sendmsg(): Eine blockierte can_send() behandeln und Timer- sowie Statusänderungen unterlassen, wenn eine neue Übertragung beansprucht wurde. wait_tx_done() gibt den in so->tx_result[] gespeicherten Fehler zurück, gekennzeichnet mit der Generation des Aufrufers.
- isotp_tx_timeout(): Bei einem beanspruchten Timeout den ECOMM-Fehler für die Generation der timeoutbedingten Übertragung in so->tx_result[] speichern; sk->sk_err wird bedingungslos gesetzt, ebenso wie bei jedem anderen Fehlerpfad hier.
- isotp_tx_gen_done()/isotp_tx_timeout(): tx.state (acquire) muss immer vor tx_gen gelesen werden – die umgekehrte Reihenfolge lässt ein schwach geordnetes CPU-Paar einen frischen tx.state mit einem veralteten tx_gen/tx_result-Eintrag paaren. - isotp_sendmsg(): wait_tx_done: sk_err über sock_error() leeren, sobald das Ergebnis aus so->tx_result[] gelesen wurde, damit ein bereits gemeldeter Fehler nicht für eine spätere poll()/SO_ERROR-Frage blockiert bleibt.
Außerdem werden die restlichen sperrfreien Zugriffe auf so->tx.state/rx.state/cfecho angepasst und skb->hash als eindeutiger Indikator für Loopback-Echoframes verwendet.
If you want to get best quality of vulnerability data, you may have to visit VulDB.