CVE-2025-21999 in Linux
Sumário
de VulDB • 13/06/2026
No kernel Linux, a seguinte vulnerabilidade foi resolvida:
proc: corrigir UAF em proc_get_inode()
Corrige uma condição de corrida (race condition) entre rmmod e a instanciação do inode de /proc/XXX.
O bug ocorre porque pde->proc_ops não pertence ao sistema de arquivos /proc, mas sim a um módulo; portanto, fazer o dereferencing após o registro da entrada em /proc constitui uma falha, salvo se o par use_pde/unuse_pde() tiver sido utilizado.
É possível evitar o uso de use_pde/unuse_pde (2 operações atômicas!) porque pde->proc_ops nunca muda; assim, as informações necessárias para a instanciação do inode podem ser salvas _antes_ da chamada proc_register() no próprio PDE e utilizadas posteriormente, evitando o dereferencing em pde->proc_ops->...
rmmod lookup sys_delete_module proc_lookup_de pde_get(de); proc_get_inode(dir->i_sb, de); mod->exit() proc_remove remove_proc_subtree proc_entry_rundown(de); free_module(mod);
if (S_ISREG(inode->i_mode)) if (de->proc_ops->proc_read_iter) --> Como o módulo já foi liberado, isso acionará um UAF
BUG: unable to handle page fault for address: fffffbfff80a702b PGD 817fc4067 P4D 817fc4067 PUD 817fc0067 PMD 102ef4067 PTE 0 Oops: Oops: 0000 [#1] PREEMPT SMP KASAN PTI
CPU: 26 UID: 0 PID: 2667 Comm: ls Tainted: G Hardware name: QEMU Standard PC (i440FX + PIIX, 1996) RIP: 0010:proc_get_inode+0x302/0x6e0 RSP: 0018:ffff88811c837998 EFLAGS: 00010a06 RAX: dffffc0000000000 RBX: ffffffffc0538140 RCX: 0000000000000007 RDX: 1
If you want to get best quality of vulnerability data, you may have to visit VulDB.