CVE-2023-52566

In the Linux kernel, the following vulnerability has been resolved: nilfs2: fix potential use after free in nilfs_gccache_submit_read_data() In nilfs_gccache_submit_read_data(), brelse(bh) is called to drop the reference count of bh when the call to nilfs_dat_translate() fails. If the reference count hits 0 and its owner page gets unlocked, bh may be freed. However, bh->b_page is dereferenced to put the page after that, which may result in a use-after-free bug. This patch moves the release operation after unlocking and putting the page. NOTE: The function in question is only called in GC, and in combination with current userland tools, address translation using DAT does not occur in that function, so the code path that causes this issue will not be executed. However, it is possible to run that code path by intentionally modifying the userland GC library or by calling the GC ioctl directly. [konishi.ryusuke@gmail.com: NOTE added to the commit log]
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.6:rc1:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.6:rc2:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.6:rc3:*:*:*:*:*:*

History

08 Apr 2025, 15:08

Type Values Removed Values Added
CPE cpe:2.3:o:linux:linux_kernel:6.6:rc3:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.6:rc1:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.6:rc2:*:*:*:*:*:*
First Time Linux linux Kernel
Linux
References () https://git.kernel.org/stable/c/193b5a1c6c67c36b430989dc063fe7ea4e200a33 - () https://git.kernel.org/stable/c/193b5a1c6c67c36b430989dc063fe7ea4e200a33 - Patch
References () https://git.kernel.org/stable/c/28df4646ad8b433340772edc90ca709cdefc53e2 - () https://git.kernel.org/stable/c/28df4646ad8b433340772edc90ca709cdefc53e2 - Patch
References () https://git.kernel.org/stable/c/3936e8714907cd55e37c7cc50e50229e4a9042e8 - () https://git.kernel.org/stable/c/3936e8714907cd55e37c7cc50e50229e4a9042e8 - Patch
References () https://git.kernel.org/stable/c/7130a87ca32396eb9bf48b71a2d42259ae44c6c7 - () https://git.kernel.org/stable/c/7130a87ca32396eb9bf48b71a2d42259ae44c6c7 - Patch
References () https://git.kernel.org/stable/c/7ee29facd8a9c5a26079148e36bcf07141b3a6bc - () https://git.kernel.org/stable/c/7ee29facd8a9c5a26079148e36bcf07141b3a6bc - Patch
References () https://git.kernel.org/stable/c/980663f1d189eedafd18d80053d9cf3e2ceb5c8c - () https://git.kernel.org/stable/c/980663f1d189eedafd18d80053d9cf3e2ceb5c8c - Patch
References () https://git.kernel.org/stable/c/bb61224f6abc8e71bfdf06d7c984e23460875f5b - () https://git.kernel.org/stable/c/bb61224f6abc8e71bfdf06d7c984e23460875f5b - Patch
References () https://git.kernel.org/stable/c/fb1084e63ee56958b0a56e17a50a4fd86445b9c1 - () https://git.kernel.org/stable/c/fb1084e63ee56958b0a56e17a50a4fd86445b9c1 - Patch

21 Nov 2024, 08:40

Type Values Removed Values Added
References () https://git.kernel.org/stable/c/193b5a1c6c67c36b430989dc063fe7ea4e200a33 - () https://git.kernel.org/stable/c/193b5a1c6c67c36b430989dc063fe7ea4e200a33 -
References () https://git.kernel.org/stable/c/28df4646ad8b433340772edc90ca709cdefc53e2 - () https://git.kernel.org/stable/c/28df4646ad8b433340772edc90ca709cdefc53e2 -
References () https://git.kernel.org/stable/c/3936e8714907cd55e37c7cc50e50229e4a9042e8 - () https://git.kernel.org/stable/c/3936e8714907cd55e37c7cc50e50229e4a9042e8 -
References () https://git.kernel.org/stable/c/7130a87ca32396eb9bf48b71a2d42259ae44c6c7 - () https://git.kernel.org/stable/c/7130a87ca32396eb9bf48b71a2d42259ae44c6c7 -
References () https://git.kernel.org/stable/c/7ee29facd8a9c5a26079148e36bcf07141b3a6bc - () https://git.kernel.org/stable/c/7ee29facd8a9c5a26079148e36bcf07141b3a6bc -
References () https://git.kernel.org/stable/c/980663f1d189eedafd18d80053d9cf3e2ceb5c8c - () https://git.kernel.org/stable/c/980663f1d189eedafd18d80053d9cf3e2ceb5c8c -
References () https://git.kernel.org/stable/c/bb61224f6abc8e71bfdf06d7c984e23460875f5b - () https://git.kernel.org/stable/c/bb61224f6abc8e71bfdf06d7c984e23460875f5b -
References () https://git.kernel.org/stable/c/fb1084e63ee56958b0a56e17a50a4fd86445b9c1 - () https://git.kernel.org/stable/c/fb1084e63ee56958b0a56e17a50a4fd86445b9c1 -

06 Nov 2024, 15:35

Type Values Removed Values Added
CWE CWE-416
CVSS v2 : unknown
v3 : unknown
v2 : unknown
v3 : 5.5
Summary
  • (es) En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad: nilfs2: soluciona el uso potencial después de liberar en nilfs_gccache_submit_read_data() En nilfs_gccache_submit_read_data(), se llama a brelse(bh) para eliminar el recuento de referencias de bh cuando falla la llamada a nilfs_dat_translate(). Si el recuento de referencias llega a 0 y la página del propietario se desbloquea, es posible que bh quede liberado. Sin embargo, se elimina la referencia a bh->b_page para colocar la página después de eso, lo que puede provocar un error de Use After Free. Este parche mueve la operación de lanzamiento después de desbloquear y poner la página. NOTA: La función en cuestión solo se llama en GC y, en combinación con las herramientas actuales del usuario, la traducción de direcciones usando DAT no ocurre en esa función, por lo que la ruta del código que causa este problema no se ejecutará. Sin embargo, es posible ejecutar esa ruta de código modificando intencionalmente la librería GC del área de usuario o llamando directamente al GC ioctl. [konishi.ryusuke@gmail.com: NOTA agregada al registro de confirmación]

02 Mar 2024, 22:15

Type Values Removed Values Added
New CVE

Information

Published : 2024-03-02 22:15

Updated : 2025-04-08 15:08


NVD link : CVE-2023-52566

Mitre link : CVE-2023-52566

CVE.ORG link : CVE-2023-52566


JSON object : View

Products Affected

linux

  • linux_kernel
CWE
CWE-416

Use After Free