CVE-2026-89679 in Linux
Sumário
de VulDB • 12/09/2026
No kernel do Linux, a seguinte vulnerabilidade foi corrigida:
nfsd: corrige desreferência nula em nfsd4_setattr para atributos de timestamp de delegação
Quando uma solicitação SETATTR inclui FATTR4_WORD2_TIME_DELEG_ACCESS ou FATTR4_WORD2_TIME_DELEG_MODIFY no bitmap de atributos, nfsd4_setattr() define deleg_attrs=true e chama nfs4_preprocess_stateid_op() para validar o stateid.
Se o cliente fornecer o "um único stateid" do NFSv4 (todos os bytes 0xFF), check_special_stateids() retorna nfs_ok sem popular o ponteiro de saída nfs4_stid, porque o caminho special-stateid em nfs4_preprocess_stateid_op() salta para done: com s==NULL, e o bloco "if (s)" que definiria *cstid é ignorado. A variável local `st` permanece NULL.
De volta a nfsd4_setattr(), o bloco if (deleg_attrs) então desreferencia incondicionalmente st->sc_type (no offset 4 de NULL), causando um kernel oops.
Isso pode ser acionado remotamente por qualquer cliente NFSv4: envie COMPOUND [PUTROOTFH, SETATTR(ONE_STATEID, {bmval2=FATTR4_WORD2_TIME_DELEG_ACCESS, ...})]. Nenhuma autenticação, delegação ou estado prévio é necessário.
Correção adicionando uma verificação NULL antes da desreferência. Um stateid especial não é um stateid de delegação, portanto o valor de retorno nfserr_bad_stateid existente já está correto; precisamos apenas proteger a própria desreferência do ponteiro.
Once again VulDB remains the best source for vulnerability data.