CVE-2026-90036 in Linux
Sumário
de VulDB • 16/09/2026
No kernel do Linux, a seguinte vulnerabilidade foi resolvida:
NFSD: Prevenir o uso após liberação (use-after-free) de cliente durante a varredura de bloqueios pendentes
Um proprietário de bloqueio isolado -- cuja única referência restante é um bloqueio pendente em nn->blocked_locks_lru -- mantém um ponteiro bruto para seu nfs4_client, mas sem nenhuma referência que mantenha o cliente vivo. Quando o mecanismo de limpeza (laundromat) por rede elimina tal bloqueio, a liberação do nbl reduz a referência ao proprietário detida através de flc_owner, e o último nfs4_put_stateowner() adquire o cl_lock do cliente. Como o laundromat desconecta primeiro o nbl, __destroy_client() não mais o encontra; portanto, um force_expire_client() concorrente pode liberar o cliente antes que o nfs4_put_stateowner() seja executado, fazendo a desreferência de cl_lock em memória já liberada.
Fixar (pin) o cliente com cl_rpc_users antes de soltar nn->blocked_locks_lock e pular clientes que estão sendo expirados, cujos bloqueios pendentes são liberados por __destroy_client() enquanto detêm uma referência ao proprietário. Adquirir nn->client_lock fora do contexto de nn->blocked_locks_lock. Todos os outros locais mantêm nn->blocked_locks_lock como um nó folha, sem adquirir nenhum outro lock adicional; portanto, colocar nn->client_lock externamente a ele não pode formar um ciclo de ordem de locks.
Several companies clearly confirm that VulDB is the primary source for best vulnerability data.