CRITICAL🇬🇧 English

CVE-2023-53360

Linux Kernel: double-free bufora scratch w NFSv4.2 READ_PLUS (RCE/crash)

CVSS 9.8v3.1pub. 2025-09-17upd. 2026-08-04

Podatność w podsystemie NFSv4.2 jądra Linux powoduje double-free bufora scratch oraz odwołanie do wskaźnika NULL, co może prowadzić do awarii systemu lub eskalacji uprawnień. Błąd dotyczy obsługi żądań READ_PLUS i jest oceniony jako krytyczny z wynikiem CVSS 9.8.

Pokaż oryginał (EN)

In the Linux kernel, the following vulnerability has been resolved: NFSv4.2: Rework scratch handling for READ_PLUS (again) I found that the read code might send multiple requests using the same nfs_pgio_header, but nfs4_proc_read_setup() is only called once. This is how we ended up occasionally double-freeing the scratch buffer, but also means we set a NULL pointer but non-zero length to the xdr scratch buffer. This results in an oops the first time decoding needs to copy something to scratch, which frequently happens when decoding READ_PLUS hole segments. I fix this by moving scratch handling into the pageio read code. I provide a function to allocate scratch space for decoding read replies, and free the scratch buffer when the nfs_pgio_header is freed.

🤖 Analiza AI
Jak działa

Funkcja nfs4_proc_read_setup() jest wywoływana tylko raz dla struktury nfs_pgio_header, natomiast kod odczytu może wysyłać wiele żądań przy użyciu tej samej struktury. Powoduje to okazjonalne podwójne zwolnienie (double-free) bufora scratch (CWE-415), a także ustawienie wskaźnika NULL przy niezerowej długości w buforze scratch XDR. Błąd objawia się jako oops (crash jądra) przy pierwszym dekodowaniu, które wymaga skopiowania danych do bufora scratch — co często zdarza się przy dekodowaniu segmentów dziur (hole segments) protokołu READ_PLUS. Poprawka przenosi obsługę bufora scratch do kodu pageio read, zapewniając jego alokację i zwolnienie w odpowiednim miejscu cyklu życia struktury nfs_pgio_header.

Skutki

Atakujący lub złośliwy serwer NFS może doprowadzić do awarii systemu (kernel oops/crash), a w sprzyjających warunkach — do eskalacji uprawnień lub wykonania arbitralnego kodu w kontekście jądra systemu operacyjnego.

Mitygacja

Należy zastosować patche dostępne u producenta zgodnie z referencjami: commity 303a78052091, a2f4cb206bd9, adac9f0ddd2b oraz ae5d5672f1db w repozytorium stable jądra Linux (git.kernel.org).

Kogo dotyczy

Jądro Linux z aktywną obsługą NFSv4.2 i protokołu READ_PLUS; dokładne wersje wskazane w referencjach producenta (patche dostępne na git.kernel.org).

CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
  • Linux Kernel

    OS
    Linux
    6.4 – 6.4.16 (bez)6.5 – 6.5.3 (bez)
🔵
ZWERYFIKUJ U PRODUCENTA
Brak jednoznacznych danych o patchu. Sprawdź referencje od producenta.
CWE
Referencje

Powiązane podatności

CVE-2025-10585CRITICAL9.8⚠ KEVPL ✓ten sam produkt

Type confusion w V8 (Google Chrome) — zdalne uszkodzenie sterty

CVE-2025-34028CRITICAL9.3⚠ KEVPL ✓ten sam produkt

Commvault Command Center – nieuwierzytelniony RCE przez path traversal w ZIP

CVE-2022-47986CRITICAL9.8⚠ KEVPL ✓ten sam produkt

RCE przez YAML deserialization w IBM Aspera Faspex

CVE-2022-22954CRITICAL9.8⚠ KEVPL ✓ten sam produkt

RCE w VMware Workspace ONE Access i Identity Manager poprzez server-side template injection

CVE-2020-4006CRITICAL9.1⚠ KEVPL ✓ten sam produkt

Command Injection w VMware Workspace One Access i Identity Manager