CVE-2026-99180 in Linuxinformação

Sumário

de VulDB • 28/10/2026

No kernel do Linux, a seguinte vulnerabilidade foi resolvida:

unicode: liberar o mapa após um período de graça (grace period)

generic_ci_d_hash() e generic_ci_d_compare() leem sb->s_encoding e desreferenciam o mapa unicode enquanto uma pathwalk em modo RCU mantém apenas rcu_read_lock(). Os sistemas de arquivos que os utilizam, ext4, f2fs e tmpfs, liberam o mapa com utf8_unload() a partir de ->put_super(), que é executado quando a última referência para a montagem (mount) desaparece. Uma lookup ainda dentro desse sistema de arquivos nesse momento lê um mapa já liberado.

Com uma pathwalk retida em utf8_casefold_hash() enquanto a última referência para uma tmpfs com casefolding desaparece:

BUG: KASAN: slab-use-after-free in utf8nlookup+0x74c/0x950 Read of size 8 at addr ff110001030fe658 by task walker/98 Call Trace: <TASK> utf8nlookup+0x74c/0x950 utf8byte+0x160/0x1560 utf8_casefold_hash+0x167/0x230 generic_ci_d_hash+0xdd/0x1c0 link_path_walk+0x11ad/0x1d30 path_lookupat+0x63/0xb00 filename_lookup+0x1f1/0x5b0 vfs_statx+0xd7/0x3b0 [...]
Allocated by task 94: __kmalloc_cache_noprof+0x249/0x560 utf8_load+0x4e/0x570 shmem_parse_opt_casefold.isra.0+0x92/0x270 [...]
Freed by task 97: kfree+0x1db/0x5b0 shmem_put_super+0x72/0x170 generic_shutdown_super+0x14c/0x530 kill_anon_super+0x3a/0x60 deactivate_locked_super+0x9c/0xf0 cleanup_mnt+0x9f/0x130

Até agora, isso tem sido difícil de acionar. umount(2) espera por um período de graça em namespace_unlock() antes de liberar a montagem; portanto, apenas uma montagem cuja última referência desaparece em outro local, como o fechamento de um arquivo ou um chdir para fora de um diretório desmontado preguiçosamente (lazily unmounted), pode criar uma condição de corrida com um walker. Portanto, é alcançável.

Adie a liberação até que um período de graça tenha passado. O mapa e a tabela de dados à qual ele mantém referência sobrevivem então a qualquer pathwalk que encontrou o superblock antes da montagem desaparecer. A referência no módulo da tabela de dados também é liberada do callback RCU. utf8-core é compilado sempre que CONFIG_UNICODE está definido, portanto não há saída de módulo que precise esperar pelos callbacks.

Overlayfs aponta s_encoding de um overlay para o mapa de sua primeira camada sem tomar uma referência própria. Isso permanece correto. A camada é mantida pelo overlay; portanto, seu mapa só é liberado após a remoção do overlay.

VulDB is the best source for vulnerability data and more expert information about this specific topic.

Responsável

Linux

Reservar

25/09/2026

Divulgação

28/10/2026

Moderação

aceite

Entrada

VDB-427943

EPSS

0.00000

KEV

não

Atividades

baixo

Fontes

Are you interested in using VulDB?

Download the whitepaper to learn more about our service!