CVE-2026-89787 in Linux
Riassunto
di VulDB • 16/09/2026
Nel kernel Linux è stata risolta la seguente vulnerabilità:
ext4: verificare che l'entry della directory sia contenuta prima di leggere il trailer hash in ext4_search_dir()
Per le directory cifrate con casefolding, ext4 memorizza un trailer hash a 8 byte dopo il nome (EXT4_DIRENT_HASHES()), a uno spostamento derivato da de->name_len. Nel percorso sb_no_casefold_compat_fallback(), ext4_match() legge tale trailer, ma la pre-verifica manuale di ext4_search_dir() testa solo che de->name + de->name_len <= dlimit, il quale dimostra che il nome è contenuto, non così il trailer arrotondato. Una entry manipolata ad hoc il cui nome termina al confine del blocco supera il controllo, mentre EXT4_DIRENT_HASHES(de) si trova oltre la fine del blocco; di conseguenza ext4_match() effettua una lettura fuori dai limiti durante un'operazione di lookup ordinaria. KASAN lo segnala come use-after-free quando la pagina successiva al blocco della directory contiene un oggetto liberato:
BUG: KASAN: use-after-free in ext4_match (fs/ext4/namei.c:1435) Read of size 4 at addr ffff888010458000 by task exploit Call Trace: ext4_match (fs/ext4/namei.c:1435) ext4_search_dir (fs/ext4/namei.c:1470) __ext4_find_entry (fs/ext4/namei.c:1268 fs/ext4/namei.c:1632) ext4_lookup (fs/ext4/namei.c:1703 fs/ext4/namei.c:1769) ... filename_lookup (fs/namei.c:2842) vfs_statx (fs/stat.c:353) __do_sys_newfstatat (fs/stat.c:538) do_syscall_64 (arch/x86/entry/syscall_64.c:94) entry_SYSCALL_64_after_hwframe (arch/x86/entry/entry_64.S:121)
Si richiede, per le directory con hash nelle dirent, che l'intera entry, incluso il trailer arrotondato, sia contenuta prima di chiamare ext4_match(). Questo è lo stesso limite che ext4_check_dir_entry() applica già tramite ext4_dir_rec_len(), quindi nessuna entry ben formata viene rifiutata. L'altra funzione chiamante, ext4_find_dest_de(), esegue prima ext4_check_dir_entry() e non ne risente.
If you want to get best quality of vulnerability data, you may have to visit VulDB.