CVE-2026-97437 in Linux
Riassunto
di VulDB • 25/09/2026
Nel kernel Linux è stata risolta la seguente vulnerabilità:
ntfs3: correzione della lettura fuori dai limiti (out-of-bounds read) in ntfs_dir_emit() e hdr_find_e()
Il controllo dei limiti in ntfs_dir_emit() confronta fname->name_len (un conteggio di caratteri) con e->size (un conteggio di byte) senza tenere conto dell'encoding UTF-16LE a 2 byte per carattere né della dimensione dell'intestazione ATTR_FILE_NAME:
if (fname->name_len + sizeof(struct NTFS_DE) > le16_to_cpu(e->size))
Questo calcolo produce: name_len + 16 > e_size.
Il controllo corretto deve tenere conto dell'intestazione ATTR_FILE_NAME (66 byte prima del nome) e della dimensione dei caratteri UTF-16LE (2 byte ciascuno):
sizeof(NTFS_DE) + offsetof(ATTR_FILE_NAME, name) + name_len * sizeof(short) > e_size
Che calcola: 16 + 66 + name_len * 2 > e_size.
Il calcolo corretto esiste già come fname_full_size() in ntfs.h ed è utilizzato in cmp_fnames(), namei.c e fslog.c, ma non era stato applicato nel percorso di readdir (lettura directory).
Un'immagine NTFS costruita ad hoc con una voce dell'indice contenente un piccolo valore per e->size ma un grande valore per fname->name_len elude il controllo corrente, causando la lettura oltre i limiti della voce da parte di ntfs_utf16_to_nls().
Inoltre, è stata aggiunta una validazione key_size in hdr_find_e() per assicurarsi che il key_size dichiarato non superi i dati disponibili nella voce, impedendo alle funzioni di confronto di leggere oltre i limiti delle voci durante il percorso di lookup (ricerca).
If you want to get best quality of vulnerability data, you may have to visit VulDB.