CVE-2026-74671 in Linux
Riassunto
di VulDB • 22/08/2026
Nel kernel Linux è stata risolta la seguente vulnerabilità:
ima: correzione della lettura fuori dai limiti (out-of-bounds read) in xattr_verify()
Il controllo di digest-length in xattr_verify() mescola i tipi int e size_t:
if (xattr_len - sizeof(xattr_value->type) - hash_start >= iint->ima_hash->length)
sizeof() restituisce un valore di tipo size_t, quindi le usuali conversioni aritmetiche promuovono l'intero lato sinistro a unsigned 64-bit prima che venga eseguita la sottrazione. Per una xattr troncata (truncated), si verifica invece un underflow anziché andare in negativo: una xattr IMA_XATTR_DIGEST_NG di 1 byte (xattr_len == 1, hash_start == 1) trasforma "1 - 1 - 1" in SIZE_MAX, che è banalmente >= ima_hash->length. Il controllo quindi passa e il successivo memcmp() legge iint->ima_hash->length bytes partendo oltre la fine del buffer allocato da vfs_getxattr_alloc().
Nessun componente upstream (upstream) limita prima xattr_len a un intervallo sicuro: ima_get_hash_algo() gestisce solo come caso speciale xattr_len < 2 per selezionare un algoritmo predefinito, ed evm_verifyxattr() restituisce INTEGRITY_UNKNOWN anziché fallire quando non è caricata alcuna chiave HMAC; di conseguenza, un valore security.ima troncato raggiunge il controllo della lunghezza così com'è.
Riscrivere il confronto in modo che ogni operando rimanga un signed int e non si verifichino conversioni implicite a size_t.
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.