Katalog CVE

CVE-2026-89684

Nieznane
Opublikowano: Przetłumaczono: NVD NIST

Streszczenie

W jądrze Linux funkcja nfs4_alloc_init_cpntf_state() publikowała nowy wpis cpntf w IDR s2s_cp_stateids w jednej sekcji s2s_cp_lock, a następnie ponownie brała blokadę, aby dodać go do p_stid->sc_cp_list. W tej luce wpis był osiągalny przez so_id, ale cp_list pozostawał wyzerowany, co pozwalało wyścigowemu OFFLOAD_CANCEL wywołać list_del() na zerowej liście i uszkodzić serwer (oops).

Ocena ryzyka

Dowolny klient NFSv4.2 może wywołać awarię serwera nfsd poprzez wyścigowe żądanie OFFLOAD_CANCEL, powodując odmowę usługi. Podatność jest osiągalna zdalnie przez uwierzytelnionego klienta.

Rekomendacja

Zaktualizować jądro Linux do wersji zawierającej poprawkę, która łączy przypisanie cs_type i list_add() w tej samej sekcji krytycznej co idr_alloc_cyclic() oraz używa list_del_init() w _free_cpntf_state_locked().

Inne podatności w Linux kernel nfsd

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

In the Linux kernel, the following vulnerability has been resolved: nfsd: fix cpntf publish race in nfs4_init_cp_state nfs4_alloc_init_cpntf_state() published the new cpntf entry into the s2s_cp_stateids IDR (with cs_type set) in one s2s_cp_lock section, then took the lock again to list_add() it onto p_stid->sc_cp_list. In the gap the entry is reachable by so_id but cp_list is still {NULL,NULL} from kzalloc. A racing OFFLOAD_CANCEL (so_id is echoed to the client as cnr_stateid, so any NFSv4.2 client can drive it) reaches manage_cpntf_state() -> _free_cpntf_state_locked() and does list_del() on the zeroed list_head, oopsing the server. Fold the cs_type assignment and the list_add() into the same critical section as idr_alloc_cyclic(), so a concurrent lookup either misses the entry or sees a fully linked cp_list. INIT_LIST_HEAD() the entry after allocation and switch _free_cpntf_state_locked() to list_del_init() so a stale unlink is a no-op. nfs4_init_copy_state() passes NULL p_stid and skips the list_add, preserving NFS4_COPY_STID semantics.

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