Katalog CVE

CVE-2025-40248

WysokieCVSS 7.8
Opublikowano: Zaktualizowano: Przetłumaczono: NVD NIST

Prawdopodobieństwo exploitacji (EPSS)

Niskie ryzyko
0.14%

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

Streszczenie

W jądrze systemu Linux zidentyfikowano podatność, która występuje podczas wywołania funkcji connect() na już nawiązanym gniazdku. Ignorowanie sygnałów/timeoutów w tym kontekście prowadzi do problemów z zarządzaniem stanem gniazdka oraz może powodować wyścigi danych.

Ocena ryzyka

Podatność ta może prowadzić do nieprzewidywalnych zachowań aplikacji, takich jak błędy związane z zarządzaniem pamięcią, co może wpłynąć na stabilność i bezpieczeństwo systemu. Istnieje ryzyko wystąpienia błędów typu use-after-free lub dereferencja wskaźnika null.

Rekomendacja

Zaleca się aktualizację jądra systemu Linux do najnowszej wersji, aby usunąć tę podatność. Należy również unikać rozłączania gniazdek w przypadku sygnałów/timeoutów oraz stosować odpowiednie mechanizmy zarządzania stanem gniazdek.

Powiązane podatności

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

In the Linux kernel, the following vulnerability has been resolved: vsock: Ignore signal/timeout on connect() if already established During connect(), acting on a signal/timeout by disconnecting an already established socket leads to several issues: 1. connect() invoking vsock_transport_cancel_pkt() -> virtio_transport_purge_skbs() may race with sendmsg() invoking virtio_transport_get_credit(). This results in a permanently elevated `vvs->bytes_unsent`. Which, in turn, confuses the SOCK_LINGER handling. 2. connect() resetting a connected socket's state may race with socket being placed in a sockmap. A disconnected socket remaining in a sockmap breaks sockmap's assumptions. And gives rise to WARNs. 3. connect() transitioning SS_CONNECTED -> SS_UNCONNECTED allows for a transport change/drop after TCP_ESTABLISHED. Which poses a problem for any simultaneous sendmsg() or connect() and may result in a use-after-free/null-ptr-deref. Do not disconnect socket on signal/timeout. Keep the logic for unconnected sockets: they don't linger, can't be placed in a sockmap, are rejected by sendmsg(). [1]: https://lore.kernel.org/netdev/[email protected]/ [2]: https://lore.kernel.org/netdev/[email protected]/ [3]: https://lore.kernel.org/netdev/[email protected]/

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