[<prev] [next>] [day] [month] [year] [list]
Message-ID: <2025011946-CVE-2025-21647-51d8@gregkh>
Date: Sun, 19 Jan 2025 11:17:56 +0100
From: Greg Kroah-Hartman <gregkh@...uxfoundation.org>
To: linux-cve-announce@...r.kernel.org
Cc: Greg Kroah-Hartman <gregkh@...uxfoundation.org>
Subject: CVE-2025-21647: sched: sch_cake: add bounds checks to host bulk flow fairness counts
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.
The Linux kernel CVE team has assigned CVE-2025-21647 to this issue.
Affected and fixed versions
===========================
Issue introduced in 6.1.110 with commit 549e407569e08459d16122341d332cb508024094 and fixed in 6.1.125 with commit a777e06dfc72bed73c05dcb437d7c27ad5f90f3f
Issue introduced in 6.6.51 with commit d4a9039a7b3d8005b90c7b1a55a306444f0e5447 and fixed in 6.6.72 with commit 27202e2e8721c3b23831563c36ed5ac7818641ba
Issue introduced in 6.11 with commit 546ea84d07e3e324644025e2aae2d12ea4c5896e and fixed in 6.12.10 with commit 91bb18950b88f955838ec0c1d97f74d135756dc7
Issue introduced in 6.11 with commit 546ea84d07e3e324644025e2aae2d12ea4c5896e and fixed in 6.13-rc7 with commit 737d4d91d35b5f7fa5bb442651472277318b0bfd
Issue introduced in 5.4.284 with commit 4a4eeefa514db570be025ab46d779af180e2c9bb
Issue introduced in 5.10.226 with commit 7725152b54d295b7da5e34c2f419539b30d017bd
Issue introduced in 5.15.167 with commit cde71a5677971f4f1b69b25e854891dbe78066a4
Issue introduced in 6.10.10 with commit d7c01c0714c04431b5e18cf17a9ea68a553d1c3c
Please see https://www.kernel.org for a full list of currently supported
kernel versions by the kernel community.
Unaffected versions might change over time as fixes are backported to
older supported kernel versions. The official CVE entry at
https://cve.org/CVERecord/?id=CVE-2025-21647
will be updated if fixes are backported, please check that for the most
up to date information about this issue.
Affected files
==============
The file(s) affected by this issue are:
net/sched/sch_cake.c
Mitigation
==========
The Linux kernel CVE team recommends that you update to the latest
stable kernel version for this, and many other bugfixes. Individual
changes are never tested alone, but rather are part of a larger kernel
release. Cherry-picking individual commits is not recommended or
supported by the Linux kernel community at all. If however, updating to
the latest release is impossible, the individual changes to resolve this
issue can be found at these commits:
https://git.kernel.org/stable/c/a777e06dfc72bed73c05dcb437d7c27ad5f90f3f
https://git.kernel.org/stable/c/27202e2e8721c3b23831563c36ed5ac7818641ba
https://git.kernel.org/stable/c/91bb18950b88f955838ec0c1d97f74d135756dc7
https://git.kernel.org/stable/c/737d4d91d35b5f7fa5bb442651472277318b0bfd
Powered by blists - more mailing lists