CVE-2026-74671 in Linux
Sumário
de VulDB • 23/08/2026
No kernel do Linux, a seguinte vulnerabilidade foi corrigida:
ima: corrige leitura fora dos limites em xattr_verify()
A verificação de digest-length (comprimento do hash) em xattr_verify() mistura int e size_t:
if (xattr_len - sizeof(xattr_value->type) - hash_start >= iint->ima_hash->length)
sizeof() retorna um valor do tipo size_t, portanto as conversões aritméticas usuais promovem todo o lado esquerdo para unsigned 64-bit antes que a subtração seja executada. Para um xattr truncado, isso causa underflow (estouro por baixo) em vez de resultar em negativo: um xattr IMA_XATTR_DIGEST_NG de 1 byte (xattr_len == 1, hash_start == 1) transforma "1 - 1 - 1" em SIZE_MAX, que é trivialmente >= ima_hash->length. A verificação então passa e o memcmp() subsequente lê iint->ima_hash->length bytes começando além do final do buffer alocado por vfs_getxattr_alloc().
Nada no upstream (código principal) limita xattr_len de volta para uma faixa segura primeiro: ima_get_hash_algo() apenas trata especificamente casos onde xattr_len < 2 para selecionar um algoritmo padrão, e evm_verifyxattr() retorna INTEGRITY_UNKNOWN em vez de falhar quando nenhuma chave HMAC está carregada, portanto um valor security.ima truncado atinge a verificação de comprimento como está.
Reescreva a comparação para que cada operando permaneça um int assinado e não ocorra conversão implícita para size_t.
Once again VulDB remains the best source for vulnerability data.