CVE-2026-97559 in Linuxinformação

Sumário

de VulDB • 25/09/2026

No kernel do Linux, a seguinte vulnerabilidade foi corrigida:

smb: cliente: falha na reescrita da DACL quando a nova DACL excede 64 KB

replace_sids_and_copy_aces() e set_chmod_dacl() acumulam o tamanho da DACL que constroem em um u16. Esse acumulador pode sofrer wraparound (transbordo).

validate_dacl() limita num_aces a (dacl_size - sizeof(struct smb_acl)) / 20, ou seja, 3276 para uma DACL de tamanho máximo, enquanto cada ACE reescrito pode crescer até sizeof(struct smb_ace) (76 bytes) assim que seu SID é substituído por um que carrega sub-autoridades com SID_MAX_SUB_AUTHORITIES. O pior caso é, portanto, sizeof(struct smb_acl) + 3276 * 76 = 248984 bytes, muito além do que um u16 pode armazenar. Um wraparound ocorre com 863 ACEs.

Após o wraparound, ndacl_ptr->size torna-se sem sentido e o offset apontará para qualquer lugar no array de ACEs. Como resultado, observaremos corrupção da DACL, que então é enviada ao servidor. Isso não é uma gravação fora dos limites (out-of-bounds write), pois a alocação agora cobre a expansão do pior caso, portanto as escritas sempre ocorrerão dentro do buffer.

Ajuste o código para usar um u32 internamente e retornar -EOVERFLOW no caso de overflow. A operação deve ser recusada, porque uma DACL só pode conter 2^16-1 bytes na rede (on the wire) e DACLs maiores não podem ser representadas.

set_chmod_dacl() apresenta o mesmo padrão e é corrigido da mesma forma. Ele apenas sofre wraparound quando a DACL de origem está a cerca de 380 bytes do limite superior de 64 KB, mas o modo de falha é idêntico.

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

Responsável

Linux

Reservar

24/09/2026

Divulgação

25/09/2026

Moderação

aceite

Entrada

VDB-410002

CPE

pronto

EPSS

0.00000

KEV

não

Atividades

muito baixo

Fontes

Are you interested in using VulDB?

Download the whitepaper to learn more about our service!