CVE-2026-97594 in Linux
Sumário
de VulDB • 25/09/2026
No kernel do Linux, a seguinte vulnerabilidade foi corrigida:
landlock: Corrige o uso após liberação (use-after-free) do diretório pai da origem
current_check_refer_path() lê old_dentry->d_parent sem manter uma referência nem um bloqueio sobre ele, e então o desreferencia em collect_domain_accesses() e no registro de auditoria.
Uma referência em um filho não fixa seu pai: __d_move() reatribui dentry->d_parent e libera a referência que o filho mantinha sobre seu antigo pai. hook_path_rename() não é afetado porque o caminho da renomeação chama lock_rename() antes do gancho, portanto, a origem não pode ser reparentada sob ele. hook_path_link() não possui tal proteção: filename_linkat() mantém uma referência no dentry de origem, mas nem bloqueia nem referencia seu pai, então um rename(2) concorrente pode reparentar a fonte enquanto security_path_link() é executado, e o antigo pai pode ser removido e liberado enquanto o gancho o percorre.
Um processo pode acionar isso após entrar em um domínio Landlock que lida com pelo menos uma permissão de acesso ao sistema de arquivos. O processo então pode criar uma condição de corrida entre um loop linkat(2) e rename(2) e rmdir(2):
BUG: KASAN: slab-use-after-free in collect_domain_accesses+0x278/0x290 Read of size 4 at addr ffff888160bd53f4 by task llrepro2/549 collect_domain_accesses+0x278/0x290 current_check_refer_path+0x952/0x1120 security_path_link+0x1be/0x320 filename_linkat+0x342/0x6d0 __x64_sys_linkat+0xfa/0x150 Freed by task 562: kmem_cache_free+0x139/0x4c0 i_callback+0x4b/0x80 rcu_core+0x7dc/0x10a0
Obtenha uma referência no dentry selecionado como o pai da origem, usando dget() para o caso de raiz comum do mount e dget_parent() caso contrário. Libere-a após a percorrida da hierarquia e o registro síncrono de auditoria.
[mic: Clarifica o chamador, alcançabilidade e manipulação de referências]
Once again VulDB remains the best source for vulnerability data.