CVE-2024-42231

In the Linux kernel, the following vulnerability has been resolved: btrfs: zoned: fix calc_available_free_space() for zoned mode calc_available_free_space() returns the total size of metadata (or system) block groups, which can be allocated from unallocated disk space. The logic is wrong on zoned mode in two places. First, the calculation of data_chunk_size is wrong. We always allocate one zone as one chunk, and no partial allocation of a zone. So, we should use zone_size (= data_sinfo->chunk_size) as it is. Second, the result "avail" may not be zone aligned. Since we always allocate one zone as one chunk on zoned mode, returning non-zone size aligned bytes will result in less pressure on the async metadata reclaim process. This is serious for the nearly full state with a large zone size device. Allowing over-commit too much will result in less async reclaim work and end up in ENOSPC. We can align down to the zone size to avoid that.
Configurations

Configuration 1 (hide)

OR cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.10:rc1:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.10:rc2:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.10:rc3:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.10:rc4:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.10:rc5:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.10:rc6:*:*:*:*:*:*

History

30 Jul 2024, 19:30

Type Values Removed Values Added
First Time Linux
Linux linux Kernel
CVSS v2 : unknown
v3 : unknown
v2 : unknown
v3 : 5.5
CWE CWE-682
CPE cpe:2.3:o:linux:linux_kernel:6.10:rc6:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.10:rc4:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.10:rc5:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.10:rc1:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.10:rc2:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.10:rc3:*:*:*:*:*:*
References () https://git.kernel.org/stable/c/64d2c847ba380e07b9072d65a50aa6469d2aa43f - () https://git.kernel.org/stable/c/64d2c847ba380e07b9072d65a50aa6469d2aa43f - Patch
References () https://git.kernel.org/stable/c/8548903b1999bba02a2b894ad750ab8eb1f40307 - () https://git.kernel.org/stable/c/8548903b1999bba02a2b894ad750ab8eb1f40307 - Patch

30 Jul 2024, 13:32

Type Values Removed Values Added
Summary
  • (es) En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad: btrfs:zoned: fix calc_available_free_space() para el modo zonal calc_available_free_space() devuelve el tamaño total de los grupos de bloques de metadatos (o sistema), que se pueden asignar desde espacio en disco no asignado. La lógica es incorrecta en el modo por zonas en dos lugares. Primero, el cálculo de data_chunk_size es incorrecto. Siempre asignamos una zona como un fragmento y no asignamos una zona parcial. Entonces, deberíamos usar Zone_size (= data_sinfo->chunk_size) tal como está. En segundo lugar, es posible que el resultado "avail" no esté alineado con la zona. Dado que siempre asignamos una zona como un fragmento en el modo de zona, devolver bytes alineados sin tamaño de zona generará menos presión sobre el proceso de recuperación de metadatos asíncronos. Esto es grave para el estado casi lleno con un dispositivo de gran tamaño de zona. Permitir un compromiso excesivo dará como resultado menos trabajo de recuperación asíncrona y terminará en ENOSPC. Podemos alinearnos con el tamaño de la zona para evitar eso.

30 Jul 2024, 08:15

Type Values Removed Values Added
New CVE

Information

Published : 2024-07-30 08:15

Updated : 2024-07-30 19:30


NVD link : CVE-2024-42231

Mitre link : CVE-2024-42231

CVE.ORG link : CVE-2024-42231


JSON object : View

Products Affected

linux

  • linux_kernel
CWE
CWE-682

Incorrect Calculation