CVE-2022-49834

In the Linux kernel, the following vulnerability has been resolved: nilfs2: fix use-after-free bug of ns_writer on remount If a nilfs2 filesystem is downgraded to read-only due to metadata corruption on disk and is remounted read/write, or if emergency read-only remount is performed, detaching a log writer and synchronizing the filesystem can be done at the same time. In these cases, use-after-free of the log writer (hereinafter nilfs->ns_writer) can happen as shown in the scenario below: Task1 Task2 -------------------------------- ------------------------------ nilfs_construct_segment nilfs_segctor_sync init_wait init_waitqueue_entry add_wait_queue schedule nilfs_remount (R/W remount case) nilfs_attach_log_writer nilfs_detach_log_writer nilfs_segctor_destroy kfree finish_wait _raw_spin_lock_irqsave __raw_spin_lock_irqsave do_raw_spin_lock debug_spin_lock_before <-- use-after-free While Task1 is sleeping, nilfs->ns_writer is freed by Task2. After Task1 waked up, Task1 accesses nilfs->ns_writer which is already freed. This scenario diagram is based on the Shigeru Yoshida's post [1]. This patch fixes the issue by not detaching nilfs->ns_writer on remount so that this UAF race doesn't happen. Along with this change, this patch also inserts a few necessary read-only checks with superblock instance where only the ns_writer pointer was used to check if the filesystem is read-only.
Configurations

Configuration 1 (hide)

OR cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.1:rc1:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.1:rc2:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.1:rc3:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.1:rc4:*:*:*:*:*:*

History

10 Nov 2025, 21:12

Type Values Removed Values Added
References () https://git.kernel.org/stable/c/39a3ed68270b079c6b874d4e4727a512b9b4882c - () https://git.kernel.org/stable/c/39a3ed68270b079c6b874d4e4727a512b9b4882c - Patch
References () https://git.kernel.org/stable/c/4feedde5486c07ea79787839153a71ca71329c7d - () https://git.kernel.org/stable/c/4feedde5486c07ea79787839153a71ca71329c7d - Patch
References () https://git.kernel.org/stable/c/8cccf05fe857a18ee26e20d11a8455a73ffd4efd - () https://git.kernel.org/stable/c/8cccf05fe857a18ee26e20d11a8455a73ffd4efd - Patch
References () https://git.kernel.org/stable/c/9b162e81045266a2d5b44df9dffdf05c54de9cca - () https://git.kernel.org/stable/c/9b162e81045266a2d5b44df9dffdf05c54de9cca - Patch
References () https://git.kernel.org/stable/c/afbd1188382a75f6cfe22c0b68533f7f9664f182 - () https://git.kernel.org/stable/c/afbd1188382a75f6cfe22c0b68533f7f9664f182 - Patch
References () https://git.kernel.org/stable/c/b152300d5a1ba4258dacf9916bff20e6a8c7603b - () https://git.kernel.org/stable/c/b152300d5a1ba4258dacf9916bff20e6a8c7603b - Patch
References () https://git.kernel.org/stable/c/b2fbf10040216ef5ee270773755fc2f5da65b749 - () https://git.kernel.org/stable/c/b2fbf10040216ef5ee270773755fc2f5da65b749 - Patch
References () https://git.kernel.org/stable/c/b4736ab5542112fe0a40f140a0a0b072954f34da - () https://git.kernel.org/stable/c/b4736ab5542112fe0a40f140a0a0b072954f34da - Patch
First Time Linux
Linux linux Kernel
CVSS v2 : unknown
v3 : unknown
v2 : unknown
v3 : 7.8
CWE CWE-416
CPE cpe:2.3:o:linux:linux_kernel:6.1:rc1:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.1:rc4:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.1:rc2:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.1:rc3:*:*:*:*:*:*

02 May 2025, 13:53

Type Values Removed Values Added
Summary
  • (es) En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad: nilfs2: corrige el error de use-after-free de ns_writer al volver a montar Si un sistema de archivos nilfs2 se degrada a solo lectura debido a la corrupción de metadatos en el disco y se vuelve a montar en modo de lectura/escritura, o si se realiza un remontaje de solo lectura de emergencia, se puede desconectar un escritor de registros y sincronizar el sistema de archivos al mismo tiempo. En estos casos, el use-after-free del escritor de registros (en adelante nilfs-&gt;ns_writer) puede ocurrir como se muestra en el siguiente escenario: Tarea1 Tarea2 -------------------------------- ---------------------------------- nilfs_construct_segment nilfs_segctor_sync init_wait init_waitqueue_entry add_wait_queue schedule nilfs_remount (caso de remontaje de R/W) nilfs_attach_log_writer nilfs_detach_log_writer nilfs_segctor_destroy kfree finish_wait _raw_spin_lock_irqsave __raw_spin_lock_irqsave do_raw_spin_lock debug_spin_lock_before &lt;-- use-after-free Mientras la Tarea1 está en reposo, nilfs-&gt;ns_writer es liberado por la Tarea2. Después de que la Tarea1 se despierta, la Tarea1 accede a nilfs-&gt;ns_writer que ya está liberado. Este diagrama de escenario se basa en la publicación de Shigeru Yoshida [1]. Este parche corrige el problema al no desvincular nilfs-&gt;ns_writer al volver a montar, lo que evita que se produzca esta ejecución UAF. Además de este cambio, este parche también inserta algunas comprobaciones de solo lectura necesarias con la instancia de superbloque, donde solo se usaba el puntero ns_writer para comprobar si el sistema de archivos era de solo lectura.

01 May 2025, 15:16

Type Values Removed Values Added
New CVE

Information

Published : 2025-05-01 15:16

Updated : 2025-11-10 21:12


NVD link : CVE-2022-49834

Mitre link : CVE-2022-49834

CVE.ORG link : CVE-2022-49834


JSON object : View

Products Affected

linux

  • linux_kernel
CWE
CWE-416

Use After Free