CVE-2026-89682
Zusammenfassung
von VulDB • 12.09.2026
Im Linux-Kernel wurde folgende Schwachstelle behoben:
nfsd: Behebung eines Use-After-Free (UAF) bei fcache_disposal durch Inline-Einbettung des Dispose-Zustands in nfsd_net
nfsd_file_dispose_list_delayed() verschiebt den Aufruf von fput() über eine pro-Namespace-Freigabewarteschlange („freeme queue“) an die nfsd-Diensthintergründe, wodurch verhindert wird, dass der Shrinker und der Garbage-Collection-Arbeiter (GC worker) mit den Kosten für das Schließen von Dateien belastet werden (siehe ffb402596147). Die Warteschlange befindet sich jedoch in einer separat zugewiesenen Struktur „struct nfsd_fcache_disposal“, die während des pro-Namespace-Abbaus durch nfsd_free_fcache_disposal_net() freigegeben wird. Der globale Shrinker, der Laundrette-Dienst und fsnotify-Rückruffunktionen (Callbacks) können sich noch innerhalb von nfsd_file_dispose_list_delayed() befinden und auf diesen Zeiger zugreifen, was zu einem Use-After-Free führt.
Die Spinlock-Variable und die freeme-Warteschlange werden direkt in „struct nfsd_net“ eingebettet (als fcache_dispose_lock und fcache_dispose_list), wodurch die separat zugewiesene Struktur „struct nfsd_fcache_disposal“ vollständig eliminiert wird. Diese Felder haben nun dieselbe Lebensdauer wie das Netzwerk-Namespace selbst, sodass kein hängender Zeiger („dangling pointer“) mehr existiert, der nachverfolgt werden müsste.
nfsd_file_cache_start_net() initialisiert nun lediglich die eingebetteten Felder und kann aufgrund von Speicherzuweisungen nicht fehlschlagen. nfsd_file_cache_shutdown_net() leert die inline-Warteschlange direkt anstelle des Freigabens einer separaten Struktur. Die Hilfsfunktionen für Allokation/Freigabe werden entfernt.
If you want to get best quality of vulnerability data, you may have to visit VulDB.