Katalog CVE

CVE-2026-89691

Nieznane
Opublikowano: Przetłumaczono: NVD NIST

Streszczenie

W jądrze Linux w module nfsd funkcja nfsd4_release_compoundargs() resetuje wskaźnik args->ops do tablicy iops[8], ale nie zeruje args->opcnt, który może wynosić do 200 dla NFSv4.1+. Gdy rq_status_counter utknie na wartości nieparzystej, handler dumpit czyta do 16 wpisów z args->ops[], wykraczając poza tablicę i ujawniając przyległą pamięć slab do przestrzeni użytkownika przez netlink. Poprawka zeruje opcnt bezwarunkowo.

Ocena ryzyka

Lokalny atakujący z dostępem do interfejsu netlink rpc_status może odczytać fragmenty pamięci jądra (wyciek informacji). Może to ułatwić dalsze ataki, np. obejście mechanizmów ochronnych (KASLR).

Rekomendacja

Zaktualizuj jądro Linux do wersji zawierającej poprawkę zerującą opcnt w nfsd4_release_compoundargs(). Ogranicz dostęp do interfejsu netlink rpc_status do uprzywilejowanych procesów.

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: clear opcnt on compound arg release to prevent OOB read nfsd4_release_compoundargs() resets args->ops to the inline iops[8] array when the dynamically-allocated ops buffer is freed, but leaves args->opcnt at its original value (which can be up to 200 for NFSv4.1+ compounds). If rq_status_counter is stuck at an odd value (which can happen when nfsd_dispatch() hits an error path after setting it odd), the RPC status dumpit handler reads min(opcnt, 16) entries from args->ops[]. Since iops only has 8 elements and is the last field in struct nfsd4_compoundargs, reading indices 8-15 accesses adjacent slab memory and leaks it to userspace via netlink. Zero opcnt unconditionally in nfsd4_release_compoundargs() so stale compound metadata is never exposed through the status interface. [ cel: Remove the kvfree_rcu_mightsleep() sleep from the exposure window ]

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