Katalog CVE

CVE-2026-98761

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

Prawdopodobieństwo exploitacji (EPSS)

Niskie ryzyko
0.17%

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

Streszczenie

W jądrze Linux w sterowniku USB Type-C TCPM naprawiono błąd, w którym nieudane rozpoczęcie sekwencji FAST_ROLE_SWAP AMS nie powodowało resetu portu. W rezultacie, gdy wadliwy kabel sygnalizował FRS podczas odłączenia, kontroler TCPC autonomicznie włączał zasilanie VBUS i pozostawało ono aktywne mimo braku poprawnego przejścia stanu. Poprawka wymusza przejście do stanu ERROR_RECOVERY i reset portu w takiej sytuacji.

Ocena ryzyka

Pozostawione aktywne zasilanie VBUS po odłączeniu kabla może prowadzić do nieoczekiwanego zasilania portu USB, potencjalnych problemów z kompatybilnością ładowania oraz ryzyka uszkodzenia sprzętu lub nieprawidłowego zachowania urządzeń peryferyjnych.

Rekomendacja

Zaktualizuj jądro Linux do wersji zawierającej tę poprawkę (sterownik usb: typec: tcpm) i przetestuj zachowanie portów USB Type-C z kablami sygnalizującymi FRS. W międzyczasie unikaj używania podejrzanych kabli USB-C na krytycznych urządzeniach.

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: usb: typec: tcpm: recover after failure to start the frs ams Reset the port if the tcpm fails to start the FAST_ROLE_SWAP AMS by initiating error recovery on it. This helps in cases where some cables (incorrectly) signal an FRS to an FRS capable port during disconnection. The TCPC autonomously starts sourcing VBUS on detecting the FRS signal. However, the VBUS sourcing is left on when the FAST_ROLE_SWAP AMS fails to start (as tcpm_sink_tx_ok is 0 as CC is open due to the cable disconnect). This is because the code sets the state to INVALID_STATE without resetting the port state. Log snippet before changes: [ 101.401960] AMS FAST_ROLE_SWAP start [ 101.401971] Sink TX No Go [ 101.401982] sourcing vbus [ 101.401987] VBUS on [ 101.402159] VBUS on [ 109.257809] CC1: 0 -> 0, CC2: 5 -> 0 [state SNK_READY, polarity 1, disconnected] [ 111.267442] VBUS on After changes: [ 70.541211] AMS FAST_ROLE_SWAP start [ 70.541220] Sink TX No Go [ 70.541228] state change SNK_READY -> ERROR_RECOVERY [rev3 NONE_AMS] [ 70.541362] VBUS on [ 70.541365] sourcing vbus [ 70.541367] VBUS on [ 70.541374] state change ERROR_RECOVERY -> PORT_RESET [rev3 NONE_AMS] [ 70.541410] disable vbus discharge ret:0 [ 70.543028] Setting usb_comm capable false [ 70.544009] Setting voltage/current limit 0 mV 0 mA [ 70.544034] polarity 0 [ 70.544239] Requesting mux state 0, usb-role 0, orientation 0 [ 70.555550] cc:=0 [ 70.555595] pending state change PORT_RESET -> PORT_RESET_WAIT_OFF @ 100 ms [rev3 NONE_AMS] [ 70.555697] VBUS off [ 70.555702] VBUS VSAFE0V [ 70.555762] CC1: 5 -> 0, CC2: 0 -> 0 [state PORT_RESET, polarity 0, disconnected] [ 70.587794] VBUS off [ 70.587799] VBUS VSAFE0V [ 70.655672] state change PORT_RESET -> PORT_RESET_WAIT_OFF [delayed 100 ms] [ 70.655682] state change PORT_RESET_WAIT_OFF -> SNK_UNATTACHED [rev3 NONE_AMS] [ 70.655686] Start toggling [ 70.656274] CC1: 0 -> 0, CC2: 0 -> 0 [state TOGGLING, polarity 0, disconnected]

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