CVE-2025-21647

In the Linux kernel, the following vulnerability has been resolved: sched: sch_cake: add bounds checks to host bulk flow fairness counts Even though we fixed a logic error in the commit cited below, syzbot still managed to trigger an underflow of the per-host bulk flow counters, leading to an out of bounds memory access. To avoid any such logic errors causing out of bounds memory accesses, this commit factors out all accesses to the per-host bulk flow counters to a series of helpers that perform bounds-checking before any increments and decrements. This also has the benefit of improving readability by moving the conditional checks for the flow mode into these helpers, instead of having them spread out throughout the code (which was the cause of the original logic error). As part of this change, the flow quantum calculation is consolidated into a helper function, which means that the dithering applied to the ost load scaling is now applied both in the DRR rotation and when a sparse flow's quantum is first initiated. The only user-visible effect of this is that the maximum packet size that can be sent while a flow stays sparse will now vary with +/- one byte in some cases. This should not make a noticeable difference in practice, and thus it's not worth complicating the code to preserve the old behaviour.
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.11:-:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.11:rc7:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.13:rc1:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.13:rc2:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.13:rc3:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.13:rc4:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.13:rc5:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.13:rc6:*:*:*:*:*:*

History

26 Sep 2025, 19:47

Type Values Removed Values Added
CPE cpe:2.3:o:linux:linux_kernel:6.13:rc1:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.11:rc7:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.13:rc3:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.13:rc6:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.11:-:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.13:rc4:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.13:rc5:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.13:rc2:*:*:*:*:*:*
CVSS v2 : unknown
v3 : unknown
v2 : unknown
v3 : 7.1
CWE CWE-125
References () https://git.kernel.org/stable/c/27202e2e8721c3b23831563c36ed5ac7818641ba - () https://git.kernel.org/stable/c/27202e2e8721c3b23831563c36ed5ac7818641ba - Patch
References () https://git.kernel.org/stable/c/44fe1efb4961c1a5ccab16bb579dfc6b308ad58b - () https://git.kernel.org/stable/c/44fe1efb4961c1a5ccab16bb579dfc6b308ad58b - Patch
References () https://git.kernel.org/stable/c/737d4d91d35b5f7fa5bb442651472277318b0bfd - () https://git.kernel.org/stable/c/737d4d91d35b5f7fa5bb442651472277318b0bfd - Patch
References () https://git.kernel.org/stable/c/91bb18950b88f955838ec0c1d97f74d135756dc7 - () https://git.kernel.org/stable/c/91bb18950b88f955838ec0c1d97f74d135756dc7 - Patch
References () https://git.kernel.org/stable/c/a777e06dfc72bed73c05dcb437d7c27ad5f90f3f - () https://git.kernel.org/stable/c/a777e06dfc72bed73c05dcb437d7c27ad5f90f3f - Patch
References () https://git.kernel.org/stable/c/b1a1743aaa4906c41c426eda97e2e2586f79246d - () https://git.kernel.org/stable/c/b1a1743aaa4906c41c426eda97e2e2586f79246d - Patch
References () https://git.kernel.org/stable/c/bb0245fa72b783cb23a9949c5048781341e91423 - () https://git.kernel.org/stable/c/bb0245fa72b783cb23a9949c5048781341e91423 - Patch
First Time Linux
Linux linux Kernel

13 Mar 2025, 13:15

Type Values Removed Values Added
References
  • () https://git.kernel.org/stable/c/44fe1efb4961c1a5ccab16bb579dfc6b308ad58b -
  • () https://git.kernel.org/stable/c/b1a1743aaa4906c41c426eda97e2e2586f79246d -
  • () https://git.kernel.org/stable/c/bb0245fa72b783cb23a9949c5048781341e91423 -
Summary
  • (es) En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad: sched: sch_cake: agregar comprobaciones de los límites a los recuentos de equidad de flujo masivo del host Aunque arreglamos un error lógico en el commit citada a continuación, syzbot aún logró activar un desbordamiento de los contadores de flujo masivo por host, lo que provocó un acceso a la memoria fuera de los límites. Para evitar que dichos errores lógicos provoquen accesos a la memoria fuera de los límites, esta confirmación elimina todos los accesos a los contadores de flujo masivo por host a una serie de ayudantes que realizan la comprobación de los límites antes de cualquier incremento o decremento. Esto también tiene el beneficio de mejorar la legibilidad al mover las comprobaciones condicionales para el modo de flujo a estos ayudantes, en lugar de tenerlas distribuidas por todo el código (que era la causa del error lógico original). Como parte de este cambio, el cálculo cuántico de flujo se consolida en una función auxiliar, lo que significa que el tramado aplicado al escalamiento de carga ost ahora se aplica tanto en la rotación DRR como cuando se inicia por primera vez el cuántico de un flujo disperso. El único efecto visible para el usuario es que el tamaño máximo de paquete que se puede enviar mientras un flujo permanece disperso variará ahora en +/- un byte en algunos casos. Esto no debería suponer una diferencia notable en la práctica y, por lo tanto, no vale la pena complicar el código para conservar el comportamiento anterior.

19 Jan 2025, 11:15

Type Values Removed Values Added
New CVE

Information

Published : 2025-01-19 11:15

Updated : 2025-09-26 19:47


NVD link : CVE-2025-21647

Mitre link : CVE-2025-21647

CVE.ORG link : CVE-2025-21647


JSON object : View

Products Affected

linux

  • linux_kernel
CWE
CWE-125

Out-of-bounds Read