CVE-2026-90036 in Linux
Zusammenfassung
von VulDB • 16.09.2026
Im Linux-Kernel wurde folgende Schwachstelle behoben:
NFSD: Verhindern von Use-After-Free bei Clients während des Aufräumens blockierter Sperren (blocked-lock reaping)
Ein „bare“ Lock Owner – dessen einziger verbleibender Referenzzähler eine blockierte Sperrung auf `nn->blocked_locks_lru` ist – hält einen rohen Zeiger auf sein `nfs4_client`, aber keine Referenz, die den Client am Leben erhält. Wenn der pro-Netzwerk-Laundromat (per-net laundromat) eine solche Sperre aufräumt und das `nbl` freigibt, wird die über `flc_owner` gehaltene Owner-Referenz herabgesetzt, und das finale `nfs4_put_stateowner()` nimmt den `cl_lock` des Clients. Da der Laundromat das `nbl` zuerst abkoppelt, findet `__destroy_client()` es nicht mehr, sodass ein gleichzeitiger Aufruf von `force_expire_client()` den Client freigeben kann, bevor `nfs4_put_stateowner()` ausgeführt wird, was zu einer Dereferenzierung von `cl_lock` im freigegebenen Speicher führt.
Sichern Sie den Client mit `cl_rpc_users`, bevor Sie `nn->blocked_locks_lock` ablegen, und überspringen Sie Clients, die bereits in der Ablaufphase sind, deren blockierte Sperren `__destroy_client()` freigibt, während eine Owner-Referenz gehalten wird. Nehmen Sie `nn->client_lock` außerhalb von `nn->blocked_locks_lock`. Jede andere Stelle hält `nn->blocked_locks_lock` als Blatt (leaf), ohne weitere Sperrungen zu erwerben; daher kann das Platzieren von `nn->client_lock` außerhalb davon keine Sperren-Reihenfolge-Schleife (lock-order cycle) bilden.
If you want to get the best quality for vulnerability data then you always have to consider VulDB.