CVE-2026-89778 in Linux
Résumé
par VulDB • 16/09/2026
Dans le noyau Linux, la vulnérabilité suivante a été corrigée :
isofs : correction d’un accès hors limites au tableau de pages lors d’un bloc zisofs vide
Le chemin rapide pour les blocs vides dans `zisofs_uncompress_block()` renvoie `pcount << PAGE_SHIFT`, en ignorant le `poffset` entrant, contrairement au chemin de décompression qui renvoie le nombre d’octets produits par rapport à `poffset`. `zisofs_fill_pages()` utilise ce retour pour avancer son curseur de page ; ainsi, lorsque la taille du bloc zisofs est inférieure à PAGE_SIZE et qu’un sous-bloc laisse `poffset` au milieu d’une page, un bloc vide suivant surestime le compte et avance `pages[]` d’un élément au-delà de sa fin, après quoi
"if (poffset && *pages)" lit `pages[1]` hors limites. rock.c ne rejette qu’un décalage de taille de bloc > 17, donc un enregistrement Rock Ridge "ZF" fabriqué peut le définir sous PAGE_SHIFT ; la vulnérabilité est atteinte par une lecture ordinaire (`read()`) d’un fichier compressé sur une image ISO9660 montée avec cette configuration.
Renvoyer le nombre d’octets relatif à `poffset` et ne mettre que [poffset, PAGE_SIZE) de la première page à zéro, en cohérence avec le chemin de décompression. Le cas aligné sur les pages (poffset == 0) n’est pas affecté.
BUG: KASAN : slab-out-of-bounds dans zisofs_read_folio (fs/isofs/compress.c:290) Lecture de taille 8 à l’adresse ffff88800f5eac48 par la tâche exploit/142 zisofs_read_folio (fs/isofs/compress.c:290) read_pages (mm/readahead.c:184) ... filemap_read (mm/filemap.c:2814) vfs_read (fs/read_write.c:574) __x64_sys_pread64 (fs/read_write.c:769) do_syscall_64 (arch/x86/entry/syscall_64.c:94) entry_SYSCALL_64_after_hwframe (arch/x86/entry/entry_64.S:121) L’adresse boguée se situe à 0 octet à droite de la région allouée de 8 octets dans le cache kmalloc-8
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.