CVE-2024-44963

In the Linux kernel, the following vulnerability has been resolved: btrfs: do not BUG_ON() when freeing tree block after error When freeing a tree block, at btrfs_free_tree_block(), if we fail to create a delayed reference we don't deal with the error and just do a BUG_ON(). The error most likely to happen is -ENOMEM, and we have a comment mentioning that only -ENOMEM can happen, but that is not true, because in case qgroups are enabled any error returned from btrfs_qgroup_trace_extent_post() (can be -EUCLEAN or anything returned from btrfs_search_slot() for example) can be propagated back to btrfs_free_tree_block(). So stop doing a BUG_ON() and return the error to the callers and make them abort the transaction to prevent leaking space. Syzbot was triggering this, likely due to memory allocation failure injection.
Configurations

Configuration 1 (hide)

cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*

History

04 Oct 2024, 16:19

Type Values Removed Values Added
References () https://git.kernel.org/stable/c/98251cd60b4d702a8a81de442ab621e83a3fb24f - () https://git.kernel.org/stable/c/98251cd60b4d702a8a81de442ab621e83a3fb24f - Patch
References () https://git.kernel.org/stable/c/bb3868033a4cccff7be57e9145f2117cbdc91c11 - () https://git.kernel.org/stable/c/bb3868033a4cccff7be57e9145f2117cbdc91c11 - Patch
CWE NVD-CWE-noinfo
CPE cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
CVSS v2 : unknown
v3 : unknown
v2 : unknown
v3 : 5.5
First Time Linux linux Kernel
Linux

05 Sep 2024, 12:53

Type Values Removed Values Added
Summary
  • (es) En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad: btrfs: no hacer BUG_ON() al liberar un bloque de árbol después de un error Al liberar un bloque de árbol, en btrfs_free_tree_block(), si no podemos crear una referencia retrasada, no nos ocupamos del error y simplemente hacemos un BUG_ON(). El error más probable que ocurra es -ENOMEM, y tenemos un comentario que menciona que solo puede ocurrir -ENOMEM, pero eso no es cierto, porque en caso de que los qgroups estén habilitados, cualquier error devuelto por btrfs_qgroup_trace_extent_post() (puede ser -EUCLEAN o cualquier cosa devuelta por btrfs_search_slot(), por ejemplo) se puede propagar de vuelta a btrfs_free_tree_block(). Así que deja de hacer un BUG_ON() y devuelve el error a los llamadores y haz que aborten la transacción para evitar fugas de espacio. Syzbot estaba activando esto, probablemente debido a la inyección de fallo de asignación de memoria.

04 Sep 2024, 19:15

Type Values Removed Values Added
New CVE

Information

Published : 2024-09-04 19:15

Updated : 2024-10-04 16:19


NVD link : CVE-2024-44963

Mitre link : CVE-2024-44963

CVE.ORG link : CVE-2024-44963


JSON object : View

Products Affected

linux

  • linux_kernel