CVE-2025-21647

sched: sch_cake: add bounds checks to host bulk flow fairness counts

HIGH
7.1
CVSS Score
Published: January 19, 2025 at 10:18 AM UTC
Updated: October 15, 2026 at 01:02 AM UTC
2 products affected across 2 vendorsLinux KernelSIMATIC S7-1500 TM MFP

Using Linux by Linux?

Get instant alerts when new vulnerabilities affect Linux - before attackers find them.

Real-time alertsTrack your software stackFree plan available
Severity
HIGH7.1
Exploit prediction
EPSS 0.3%

Description

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.

Affected

Our own answer: ranges merged, affected separated from platform-only, with confidence and review flags.

v ≥ 6.10.105.10.226 ≤ v < 5.10.2355.15.167 ≤ v < 5.15.1795.4.284 ≤ v < 5.4.2916.1.110 ≤ v < 6.1.1256.10.10 ≤ v < 6.116.11 ≤ v < 6.12.106.11 ≤ v < 6.136.11.1 ≤ v < 6.12.106.6.51 ≤ v < 6.6.724a4eeefa514db570be025ab46d779af180e2c9bb5.10.2265.15.1675.4.284546ea84d07e3e324644025e2aae2d12ea4c5896e549e407569e08459d16122341d332cb5080240946.1.1106.10.106.116.11 rc76.13 rc16.13 rc26.13 rc36.13 rc46.13 rc56.13 rc66.6.517725152b54d295b7da5e34c2f419539b30d017bdcde71a5677971f4f1b69b25e854891dbe78066a4d4a9039a7b3d8005b90c7b1a55a306444f0e5447d7c01c0714c04431b5e18cf17a9ea68a553d1c3c
Vendor states this is fixed in 27202e2e8721c3b23831563c36ed5ac7818641ba (fixed)
Vendor states this is fixed in 44fe1efb4961c1a5ccab16bb579dfc6b308ad58b (fixed)
Vendor states this is fixed in 737d4d91d35b5f7fa5bb442651472277318b0bfd (fixed)
Vendor states this is fixed in 91bb18950b88f955838ec0c1d97f74d135756dc7 (fixed)
Vendor states this is fixed in a777e06dfc72bed73c05dcb437d7c27ad5f90f3f (fixed)
Vendor states this is fixed in b1a1743aaa4906c41c426eda97e2e2586f79246d (fixed)
Vendor states this is fixed in bb0245fa72b783cb23a9949c5048781341e91423 (fixed)
Vendor states this is fixed in 5.10.235 (unaffected)
Vendor states this is fixed in 5.15.179 (unaffected)
Vendor states this is fixed in 5.4.291 (unaffected)
Vendor states this is fixed in 6.1.125 (unaffected)
Vendor states this is fixed in 6.11 (unaffected)
Vendor states this is fixed in 6.12.10 (unaffected)
Vendor states this is fixed in 6.13 (unaffected)
Vendor states this is fixed in 6.6.72 (unaffected)

References (11)

Patch
Source: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
https://git.kernel.org/stable/c/27202e2e8721c3b23831563c36ed5ac7818641ba
Patch
Source: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
https://git.kernel.org/stable/c/44fe1efb4961c1a5ccab16bb579dfc6b308ad58b
Patch
Source: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
https://git.kernel.org/stable/c/737d4d91d35b5f7fa5bb442651472277318b0bfd
Patch
Source: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
https://git.kernel.org/stable/c/91bb18950b88f955838ec0c1d97f74d135756dc7
Patch
Source: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
https://git.kernel.org/stable/c/a777e06dfc72bed73c05dcb437d7c27ad5f90f3f
Patch
Source: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
https://git.kernel.org/stable/c/b1a1743aaa4906c41c426eda97e2e2586f79246d
Patch
Source: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
https://git.kernel.org/stable/c/bb0245fa72b783cb23a9949c5048781341e91423
Source: af854a3a-2127-422b-91ae-364da2661108
https://lists.debian.org/debian-lts-announce/2025/03/msg00001.html

CVSS

Attack Vector
LOCAL
Complexity
LOW
Privileges
LOW
User Interaction
NONE
Scope
UNCHANGED
Confidentiality
HIGH
Integrity
NONE
Availability
HIGH
Vector?

Quick Info

StatusMODIFIED
CWE
CWE-125

Get alerted

Stop reading CVE feeds looking for your own stack

Track the products you run and VulnTracker tells you when a new CVE affects them — with what is known about fixing it, and nothing about the rest.

Free plan, no card