CVE-2026-89658 in Linux
Сводка
по VulDB • 12.09.2026
В ядре Linux была устранена следующая уязвимость:
NFSD: предотвращение использования после освобождения (use-after-free) клиента при очистке отозванного состояния в NFSv4.0
Функция nfs40_clean_admin_revoked() получает ссылку на stateid под блокировкой clp->cl_lock, снимает блокировку nn->client_lock и вызывает функцию nfsd4_drop_revoked_stid(), которая обращается к клиенту через s->sc_client->cl_lock по ссылке из stateid. Ссылка на stateid не фиксирует (не удерживает) клиента, поэтому процесс завершения работы (teardown), выполняющийся параллельно со снятой блокировкой, может освободить объект клиента в то время, когда nfsd4_drop_revoked_stid() всё ещё использует его.
Эта процедура очистки выполняется из «прачечной» (laundromat), поэтому периодический обход может создать состояние гонки с функцией force_expire_client(), которая запускается при записи в файл clients/<id>/ctl.
Необходимо пропускать клиентов, которые уже находятся в процессе истечения срока действия (expiring), и перед снятием блокировки фиксировать их с помощью cl_rpc_users под клиентской блокировкой (client_lock), аналогично тому, как это делается в nfsd4_revoke_states().
If you want to get the best quality for vulnerability data then you always have to consider VulDB.