Katalog CVE

CVE-2026-89535

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

Prawdopodobieństwo exploitacji (EPSS)

Niskie ryzyko
0.51%

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

Streszczenie

W jądrze Linux w funkcji svc_rdma_free() podsystemu svcrdma występuje use-after-free wynikający z kolejności operacji. Funkcja rpcrdma_rn_unregister() jest wywoływana po rdma_destroy_id(), przez co wpis sc_rn pozostaje w rd_xa urządzenia po zwolnieniu cm_id. Równoległe przejście ib_unregister_device może wywołać svc_rdma_xprt_done() na zwolnionym sc_cm_id. Dodatkowo brak sprawdzenia NULL przy dereferencji sc_cm_id.

Ocena ryzyka

Może prowadzić do uszkodzenia pamięci jądra, awarii systemu lub potencjalnego wykorzystania przez atakującego. Dotyczy systemów używających RDMA z NFS/SUNRPC.

Rekomendacja

Zaktualizuj jądro Linux do wersji zawierającej poprawkę przenoszącą rpcrdma_rn_unregister() przed rdma_destroy_id() oraz dodającą sprawdzenie NULL dla sc_cm_id.

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: svcrdma: Reorder rpcrdma_rn_unregister before rdma_destroy_id svc_rdma_free() caches rdma->sc_cm_id->device before teardown, then calls rdma_destroy_id(sc_cm_id) which frees the cm_id. rpcrdma_rn_unregister() follows, but between those two calls the transport's sc_rn entry is still installed in the device's rd_xa. A concurrent ib_unregister_device walk can dispatch svc_rdma_xprt_done() against the now-freed sc_cm_id. Move rpcrdma_rn_unregister() before rdma_destroy_id() so the transport's notification entry is removed from the xarray before the cm_id it references is destroyed. Also guard the sc_cm_id dereference with a NULL check: the following patches introduce paths that reach svc_rdma_free() with sc_cm_id == NULL (listener create failure, ADDR_CHANGE replacement failure).

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