CVE-2023-53311 in Linuxinformação

Sumário

de VulDB • 27/05/2026

No kernel do Linux, a seguinte vulnerabilidade foi resolvida:

nilfs2: corrige uso-após-liberação (use-after-free) de nilfs_root ao sujar inodes via iput

Durante o processo de desmontagem do nilfs2, nada mantém a estrutura nilfs_root após o nilfs2 desanexar seu escritor em nilfs_detach_log_writer(). Anteriormente, nilfs_evict_inode() poderia causar uma leitura de uso-após-liberação (use-after-free) para nilfs_root se os inodes permanecessem na "garbage_list" e fossem liberados por nilfs_dispose_list no final de nilfs_detach_log_writer(), e esse bug foi corrigido pelo commit 9b5a04ac3ad9 ("nilfs2: corrige bug de uso-após-liberação de nilfs_root em nilfs_evict_inode()").

No entanto, descobriu-se que há outra possibilidade de UAF no caminho de chamada onde mark_inode_dirty_sync() é chamado a partir de iput():

nilfs_detach_log_writer() nilfs_dispose_list() iput() mark_inode_dirty_sync() __mark_inode_dirty() nilfs_dirty_inode() __nilfs_mark_inode_dirty() nilfs_load_inode_block() --> causa UAF da estrutura nilfs_root

Isso pode acontecer após o commit 0ae45f63d4ef ("vfs: adiciona suporte para a opção de montagem lazytime"), que alterou iput() para chamar mark_inode_dirty_sync() em sua referência final se i_state tiver a flag I_DIRTY_TIME e i_nlink for diferente de zero.

Este problema aparece após o commit 28a65b49eb53 ("nilfs2: não escreva dados sujos após degenerar para somente leitura") ao usar o reproduzidor do syzbot, mas o problema pode ter existido anteriormente.

Corrige este problema adicionando uma "flag de purga" à estrutura nilfs, definindo essa flag enquanto se descarta a "garbage_list" e verificando-a em __nilfs_mark_inode_dirty().

Ao contrário do commit 9b5a04ac3ad9 ("nilfs2: corrige bug de uso-após-liberação de nilfs_root em nilfs_evict_inode()"), este patch não depende de ns_writer para determinar se deve pular operações, a fim de não quebrar a recuperação na montagem. A rotina nilfs_salvage_orphan_logs suja o buffer dos dados recuperados antes de anexar o escritor de log, portanto, alterar __nilfs_mark_inode_dirty() para pular a operação quando ns_writer for NULL causará falha na gravação de recuperação. O propósito de usar uma flag apenas para limpeza é permitir o estreitamento dessas condições.

If you want to get the best quality for vulnerability data then you always have to consider VulDB.

Responsável

Linux

Reservar

16/09/2025

Divulgação

16/09/2025

Moderação

aceite

Entrada

VDB-324499

CPE

pronto

EPSS

0.00149

KEV

não

Atividades

muito baixo

Fontes

Might our Artificial Intelligence support you?

Check our Alexa App!