CVE-2026-23465

In the Linux kernel, the following vulnerability has been resolved: btrfs: log new dentries when logging parent dir of a conflicting inode If we log the parent directory of a conflicting inode, we are not logging the new dentries of the directory, so when we finish we have the parent directory's inode marked as logged but we did not log its new dentries. As a consequence if the parent directory is explicitly fsynced later and it does not have any new changes since we logged it, the fsync is a no-op and after a power failure the new dentries are missing. Example scenario: $ mkdir foo $ sync $rmdir foo $ mkdir dir1 $ mkdir dir2 # A file with the same name and parent as the directory we just deleted # and was persisted in a past transaction. So the deleted directory's # inode is a conflicting inode of this new file's inode. $ touch foo $ ln foo dir2/link # The fsync on dir2 will log the parent directory (".") because the # conflicting inode (deleted directory) does not exists anymore, but it # it does not log its new dentries (dir1). $ xfs_io -c "fsync" dir2 # This fsync on the parent directory is no-op, since the previous fsync # logged it (but without logging its new dentries). $ xfs_io -c "fsync" . <power failure> # After log replay dir1 is missing. Fix this by ensuring we log new dir dentries whenever we log the parent directory of a no longer existing conflicting inode. A test case for fstests will follow soon.
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:7.0:rc1:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:7.0:rc2:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:7.0:rc3:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:7.0:rc4:*:*:*:*:*:*

History

24 Jul 2026, 22:10

Type Values Removed Values Added
Summary
  • (es) En el kernel de Linux, la siguiente vulnerabilidad ha sido resuelta: btrfs: registrar nuevas entradas de directorio (dentries) al registrar el directorio padre de un inodo en conflicto Si registramos el directorio padre de un inodo en conflicto, no estamos registrando las nuevas entradas de directorio (dentries) del directorio, así que cuando terminamos tenemos el inodo del directorio padre marcado como registrado pero no registramos sus nuevas entradas de directorio (dentries). Como consecuencia, si el directorio padre se sincroniza explícitamente (fsynced) más tarde y no tiene ningún cambio nuevo desde que lo registramos, el fsync es una operación nula (no-op) y después de un fallo de alimentación las nuevas entradas de directorio (dentries) faltan. Escenario de ejemplo: $ mkdir foo $ sync $rmdir foo $ mkdir dir1 $ mkdir dir2 # Un archivo con el mismo nombre y padre que el directorio que acabamos de eliminar # y fue persistido en una transacción anterior. Así que el inodo del directorio eliminado # es un inodo en conflicto del inodo de este nuevo archivo. $ touch foo $ ln foo dir2/link # El fsync en dir2 registrará el directorio padre ('.') porque el # inodo en conflicto (directorio eliminado) ya no existe, pero # no registra sus nuevas entradas de directorio (dentries) (dir1). $ xfs_io -c 'fsync' dir2 # Este fsync en el directorio padre es una operación nula (no-op), ya que el fsync anterior # lo registró (pero sin registrar sus nuevas entradas de directorio (dentries)). $ xfs_io -c 'fsync' . <fallo de alimentación> # Después de la reproducción del registro, dir1 falta. Solucione esto asegurando que registramos nuevas entradas de directorio (dentries) cada vez que registramos el directorio padre de un inodo en conflicto que ya no existe. Un caso de prueba para fstests seguirá pronto.

20 May 2026, 15:17

Type Values Removed Values Added
CVSS v2 : unknown
v3 : unknown
v2 : unknown
v3 : 5.5
First Time Linux linux Kernel
Linux
CPE cpe:2.3:o:linux:linux_kernel:7.0:rc4:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:7.0:rc3:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:7.0:rc2:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:7.0:rc1:*:*:*:*:*:*
CWE NVD-CWE-noinfo
References () https://git.kernel.org/stable/c/1cf30c73602c69d750c9345c47f2c0e9d0cfb578 - () https://git.kernel.org/stable/c/1cf30c73602c69d750c9345c47f2c0e9d0cfb578 - Patch
References () https://git.kernel.org/stable/c/56e72c8b02d982be775d9df025357c152383ee84 - () https://git.kernel.org/stable/c/56e72c8b02d982be775d9df025357c152383ee84 - Patch
References () https://git.kernel.org/stable/c/6f5a51969b1deb79aefd2194b48fe7e78e72ff7e - () https://git.kernel.org/stable/c/6f5a51969b1deb79aefd2194b48fe7e78e72ff7e - Patch
References () https://git.kernel.org/stable/c/9573a365ff9ff45da9222d3fe63695ce562beb24 - () https://git.kernel.org/stable/c/9573a365ff9ff45da9222d3fe63695ce562beb24 - Patch
References () https://git.kernel.org/stable/c/f556b1e09d054e31f464c0fd37280c2b5a393fee - () https://git.kernel.org/stable/c/f556b1e09d054e31f464c0fd37280c2b5a393fee - Patch

03 Apr 2026, 16:16

Type Values Removed Values Added
New CVE

Information

Published : 2026-04-03 16:16

Updated : 2026-07-24 22:10


NVD link : CVE-2026-23465

Mitre link : CVE-2026-23465

CVE.ORG link : CVE-2026-23465


JSON object : View

Products Affected

linux

  • linux_kernel