Katalog CVE

CVE-2026-80980

KrytyczneCVSS 9.8
Opublikowano: Zaktualizowano: Przetłumaczono: NVD NIST

Prawdopodobieństwo exploitacji (EPSS)

Niskie ryzyko
0.20%

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

Streszczenie

W jądrze Linux w podsystemie net/smc trzy flagi stanu połączenia (killed, freed, out_of_sync) są polami bitowymi zajmującymi wspólny bajt struktury smc_connection. Ponieważ nie są zapisywane pod wspólnym zamkiem, zapis jednej flagi modyfikuje sąsiednie bity, co prowadzi do wyścigu i błędnego stanu połączenia.

Ocena ryzyka

Wyścig przy równoczesnym ustawianiu flag z kontekstu procesu i taskletu odbiorczego może prowadzić do uszkodzenia stanu połączenia SMC i niestabilności systemu. W środowiskach wykorzystujących SMC (np. komunikacja RoCE/ISM) może to powodować błędy transmisji lub awarie jądra.

Rekomendacja

Zaktualizuj jądro Linux do wersji zawierającej poprawkę rozdzielającą każdą flagę do osobnego bajtu. Jeśli aktualizacja nie jest możliwa, ogranicz lub wyłącz używanie SMC na narażonych systemach.

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: net/smc: stop killed, freed and out_of_sync sharing a byte The three connection state flags are single-bit bitfields, so they occupy one byte of struct smc_connection and every store to one is a read-modify-write of the other two: u8 killed : 1; u8 freed : 1; u8 out_of_sync : 1; They are not written under a common lock. smc_cdc_msg_validate() sets out_of_sync from the receive tasklet, while smc_conn_kill() sets killed from process context under lock_sock(), and the receive path does not defer to the backlog when the socket is owned -- smc_cdc_msg_recv() takes only bh_lock_sock(). Give each flag its own byte so a store no longer touches its neighbours. All readers test them as booleans and are unchanged. struct smc_connection grows by two bytes.

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