Katalog CVE

CVE-2026-89674

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

Prawdopodobieństwo exploitacji (EPSS)

Niskie ryzyko
0.17%

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

Streszczenie

W jądrze Linux w funkcji nfsd4_ff_encode_layoutget() występują błędy w obliczaniu długości bufora XDR. Błędy te mogą prowadzić do zapisu poza granicami bufora lub wycieku niezainicjalizowanej pamięci jądra do klienta. Najgorszy przypadek występuje przy krótkich ciągach znaków, gdzie funkcja zapisuje do 5 bajtów poza zarezerwowanym buforem.

Ocena ryzyka

Może prowadzić do wycieku poufnych informacji z pamięci jądra do klienta NFS lub do uszkodzenia pamięci jądra. Podatność jest zdalnie wyzwalana przez operacje layoutget w NFS.

Rekomendacja

Zaktualizuj jądro Linux do wersji zawierającej poprawkę, która jawnie oblicza każde pole i używa xdr_align_size() dla pól o zmiennej długości. Ogranicz dostęp do usług NFS do zaufanych sieci.

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: nfsd: fix XDR length calculation in nfsd4_ff_encode_layoutget The XDR buffer size calculation in nfsd4_ff_encode_layoutget() has multiple errors that can result in either an out-of-bounds write or leaking uninitialized kernel memory to the client: - fh_len doesn't account for XDR padding on the file handle data - uid and gid lengths use "8 + len" but xdr_encode_opaque() actually writes "4 + xdr_align_size(len)" bytes - ds_len omits the flags and stats_collect_hint fields (8 bytes), while len's header constant overestimates by 8 bytes -- these partially cancel but leave a net mismatch The worst case occurs with short strings (e.g. uid=0, gid=0 with an odd-sized file handle), where the function writes up to 5 bytes past the reserved XDR buffer. Conversely, when string lengths happen to be 4-byte aligned, the reservation is too large and stale buffer content is sent to the client. Fix this by breaking out every encoded field explicitly in the ds_len calculation, using xdr_align_size() for all variable-length opaque fields, and correcting the header constants.

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