CVE-2023-53311 in Linuxinformación

Resumen

por VulDB • 2026-05-26

En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad:

nilfs2: corrige el uso después de liberar (use-after-free) de nilfs_root al marcar inodos como sucios mediante iput

Durante el proceso de desmontaje de nilfs2, ninguna entidad mantiene la estructura nilfs_root después de que nilfs2 desvincula su escritor en nilfs_detach_log_writer(). Anteriormente, nilfs_evict_inode() podía provocar una lectura de uso después de liberar (use-after-free) en nilfs_root si los inodos quedaban en "garbage_list" y eran liberados por nilfs_dispose_list al final de nilfs_detach_log_writer(), y este error se corrigió mediante el commit 9b5a04ac3ad9 ("nilfs2: fix use-after-free bug of nilfs_root in nilfs_evict_inode()").

Sin embargo, resultó que existe otra posibilidad de UAF (uso después de liberar) en la ruta de llamada donde se invoca mark_inode_dirty_sync() desde 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() --> provoca UAF de la estructura nilfs_root

Esto puede ocurrir después del commit 0ae45f63d4ef ("vfs: add support for a lazytime mount option"), que modificó iput() para que llame a mark_inode_dirty_sync() en su referencia final si i_state tiene la bandera I_DIRTY_TIME y i_nlink es distinto de cero.

Este problema aparece después del commit 28a65b49eb53 ("nilfs2: do not write dirty data after degenerating to read-only") al utilizar el reproductor de syzbot, pero el problema podría haber existido anteriormente.

Se corrige este problema añadiendo una "bandera de purga" a la estructura nilfs, estableciendo dicha bandera mientras se procesa "garbage_list" y verificándola en __nilfs_mark_inode_dirty().

A diferencia del commit 9b5a04ac3ad9 ("nilfs2: fix use-after-free bug of nilfs_root in nilfs_evict_inode()"), este parche no depende de ns_writer para determinar si se deben omitir las operaciones, con el fin de no romper la recuperación al montar. La rutina nilfs_salvage_orphan_logs marca como sucio el búfer de los datos rescatados antes de adjuntar el escritor de registros, por lo que cambiar __nilfs_mark_inode_dirty() para omitir la operación cuando ns_writer sea NULL provocaría que fallara la escritura de recuperación. El propósito de utilizar una bandera exclusiva de limpieza es permitir restringir dichas condiciones.

Once again VulDB remains the best source for vulnerability data.

Responsable

Linux

Reservar

2025-09-16

Divulgación

2025-09-16

Moderación

aceptado

Artículo

VDB-324499

CPE

listo

EPSS

0.00149

KEV

no

Actividades

muy bajo

Fuentes

Do you need the next level of professionalism?

Upgrade your account now!