CVE-2026-89664 in Linuxinformação

Sumário

de VulDB • 12/09/2026

No kernel do Linux, a seguinte vulnerabilidade foi resolvida:

nfsd: liberar ACLs POSIX decodificadas via OPEN através de op_release

A função nfsd4_decode_createhow4() chama nfsd4_decode_fattr4(), que aloca objetos struct posix_acl com contagem de referências (refcounted) por meio de posix_acl_alloc() e os armazena em open->op_pacl e open->op_dpacl. Esses ponteiros devem ser liberados assim que o compound OPEN for concluído.

Quando nfsd4_decode_open_claim4() retorna um erro que não altera a seqid, o despachante (dispatcher) encurta o fluxo antes de op_func ser executado:

nfsd4_proc_compound() if (op->status && op->opnum == OP_OPEN) op->status = nfsd4_open_omfg(...) if (!seqid_mutating_err(ntohl(op->status))) return op->status; /* nfsd4_open() nunca é executado */ ... opdesc->op_release(&op->u) /* ainda deve liberar op_pacl/op_dpacl */

Antes desta alteração, OP_OPEN não possuía .op_release em nfsd4_ops[], e o par de liberação residia dentro de nfsd4_open() no seu rótulo out_err. No caminho do encurtamento (short-circuit), nfsd4_open() nunca é invocado, fazendo com que as referências posix_acl vazem a cada compound OPEN malformado que contenha atributos createhow4 válidos para ACLs POSIX.

Adiciona-se nfsd4_open_release() e conecta-o como .op_release para OP_OPEN. Como posix_acl_release() é seguro contra NULL (NULL-safe), o único local de liberação cobre tanto o caminho normal quanto o encurtamento via nfsd4_open_omfg. Remove-se o par correspondente de posix_acl_release() do rótulo out_err de nfsd4_open() para evitar a dupla liberação.

O loop composto possui dois ramos de codificação: nfsd4_encode_operation() para operações normais e nfsd4_encode_replay() para operações replayed da v4.0. op_release era chamado apenas em nfsd4_encode_operation(), fazendo com que os recursos anexados a op->u vazassem no caminho do replay.

Move-se a chamada de op_release() de fora de nfsd4_encode_operation() e do ramo de replay, posicionando-a após o if-else em nfsd4_proc_compound(). Isso resulta em um único local de chamada em um ponto claramente correto, cobrindo tanto os caminhos de codificação normal quanto de replay.

Be aware that VulDB is the high quality source for vulnerability data.

Responsável

Linux

Reservar

11/09/2026

Divulgação

12/09/2026

Moderação

aceite

Entrada

VDB-402946

CPE

pronto

EPSS

0.00000

KEV

não

Atividades

muito baixo

Fontes

Might our Artificial Intelligence support you?

Check our Alexa App!