In the Linux kernel, the following vulnerability has been resolved:
sched: sch_cake: fix bulk flow accounting logic for host fairness
In sch_cake, we keep track of the count of active bulk flows per host, when running in dst/src host fairness mode, which is used as the round-robin weight when iterating through flows. The count of active bulk flows is updated whenever a flow changes state.
This has a peculiar interaction with the hash collision handling: when a hash collision occurs (after the set-associative hashing), the state of the hash bucket is simply updated to match the new packet that collided, and if host fairness is enabled, that also means assigning new per-host state to the flow. For this reason, the bulk flow counters of the host(s) assigned to the flow are decremented, before new state is assigned (and the counters, which may not belong to the same host anymore, are incremented again).
Back when this code was introduced, the host fairness mode was always enabled, so the decrement was unconditional. When the configuration flags were introduced the *increment* was made conditional, but the *decrement* was not. Which of course can lead to a spurious decrement (and associated wrap-around to U16_MAX).
AFAICT, when host fairness is disabled, the decrement and wrap-around happens as soon as a hash collision occurs (which is not that common in itself, due to the set-associative hashing). However, in most cases this is harmless, as the value is only used when host fairness mode is enabled. So in order to trigger an array overflow, sch_cake has to first be configured with host fairness disabled, and while running in this mode, a hash collision has to occur to cause the overflow. Then, the qdisc has to be reconfigured to enable host fairness, which leads to the array out-of-bounds because the wrapped-around value is retained and used as an array index. It seems that syzbot managed to trigger this, which is quite impressive in its own right.
This patch fixes the issue by introducing the same conditional check on decrement as is used on increment.
The original bug predates the upstreaming of cake, but the commit listed in the Fixes tag touched that code, meaning that this patch won't apply before that.
CVSS Details
- CVSS 3.1 Base Score: 7.1
- CVSS 3.1 Vector: (CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:H)
Covered by Rapid7
| Product | Vendor Advisory | Solution File | Added | Published |
|---|---|---|---|---|
| Amazon Linux Ami 2 | — | Upgrade kernelUpgrade kernel-develUpgrade python-perfUpgrade kernel-debuginfo-common-x86_64Upgrade kernel-debuginfo-common-aarch64Upgrade bpftoolUpgrade kernel-toolsUpgrade kernel-debuginfoUpgrade bpftool-debuginfoUpgrade kernel-headersUpgrade kernel-livepatch-5.10.226-214.879Upgrade perf-debuginfoUpgrade kernel-tools-debuginfoUpgrade python-perf-debuginfoUpgrade kernel-livepatch-5.15.167-112.165Upgrade perfUpgrade kernel-tools-devel | Oct 29, 2024 | Sep 27, 2024 |
| Amazon_linux_2023 | — | Upgrade kernel-modules-extraUpgrade kernel-libbpfUpgrade perfUpgrade kernel-tools-develUpgrade kernel-headersUpgrade kernel-debuginfoUpgrade perf-debuginfoUpgrade kernel-livepatch-6.1.111-120.187Upgrade kernel-modules-extra-commonUpgrade kernel-libbpf-develUpgrade python3-perfUpgrade kernel-develUpgrade python3-perf-debuginfoUpgrade kernelUpgrade kernel-tools-debuginfoUpgrade bpftool-debuginfoUpgrade kernel-libbpf-staticUpgrade kernel-debuginfo-common-aarch64Upgrade kernel-toolsUpgrade bpftoolUpgrade kernel-debuginfo-common-x86_64 | Feb 17, 2025 | Sep 27, 2024 |
| Debian | — | Upgrade linux-6.1Upgrade linux | Oct 7, 2024 | Sep 27, 2024 |
| Oracle_linux | — | Upgrade kernel-uek | Nov 21, 2024 | Sep 27, 2024 |
| Redhat_linux | — | Upgrade kernel-rtNo solution existsUpgrade kernel | May 15, 2025 | Sep 27, 2024 |
| Suse | — | Upgrade kselftests-kmp-rtUpgrade dtb-qcomUpgrade kernel-azure-livepatch-develUpgrade reiserfs-kmp-64kbUpgrade dtb-caviumUpgrade dtb-armUpgrade dtb-alteraUpgrade kernel-source-vanillaUpgrade dtb-rockchipUpgrade gfs2-kmp-defaultUpgrade kernel-source-rtUpgrade dtb-amlogicUpgrade kernel-default-vdsoUpgrade gfs2-kmp-azureUpgrade cluster-md-kmp-64kbUpgrade kernel-syms-rtUpgrade dtb-sprdUpgrade kernel-obs-buildUpgrade kernel-azure-develUpgrade kernel-defaultUpgrade kselftests-kmp-azureUpgrade kernel-kvmsmall-vdsoUpgrade kernel-rt-vdsoUpgrade kernel-rt-livepatch-develUpgrade kernel-docsUpgrade dlm-kmp-rtUpgrade dtb-nvidiaUpgrade kernel-rt_debug-develUpgrade kernel-azure-vdsoUpgrade kernel-default-base-rebuildUpgrade kernel-rt_debug-livepatch-develUpgrade kernel-rtUpgrade reiserfs-kmp-azureUpgrade kernel-64kb-extraUpgrade kernel-syms-azureUpgrade kernel-rt-optionalUpgrade kernel-debug-vdsoUpgrade kernel-azureUpgrade kernel-rt-extraUpgrade kernel-rt_debug-vdsoUpgrade kselftests-kmp-defaultUpgrade kselftests-kmp-64kbUpgrade dtb-marvellUpgrade dtb-lgUpgrade kernel-64kb-develUpgrade kernel-default-develUpgrade gfs2-kmp-rtUpgrade dtb-hisiliconUpgrade ocfs2-kmp-defaultUpgrade kernel-docs-htmlUpgrade dtb-xilinxUpgrade kernel-64kb-optionalUpgrade kernel-symsUpgrade kernel-zfcpdumpUpgrade kernel-default-livepatch-develUpgrade kernel-azure-optionalUpgrade kernel-default-livepatchUpgrade kernel-develUpgrade dtb-amazonUpgrade dlm-kmp-azureUpgrade kernel-rt-livepatchUpgrade kernel-rt-develUpgrade kernel-macrosUpgrade cluster-md-kmp-rtUpgrade dtb-amdUpgrade kernel-devel-azureUpgrade kernel-obs-qaUpgrade kernel-debugUpgrade gfs2-kmp-64kbUpgrade dtb-mediatekUpgrade dtb-broadcomUpgrade ocfs2-kmp-rtUpgrade kernel-kvmsmall-develUpgrade kernel-default-optionalUpgrade reiserfs-kmp-rtUpgrade ocfs2-kmp-64kbUpgrade kernel-source-azureUpgrade kernel-default-extraUpgrade kernel-default-baseUpgrade dlm-kmp-defaultUpgrade kernel-devel-rtUpgrade kernel-rt_debugUpgrade dlm-kmp-64kbUpgrade dtb-allwinnerUpgrade cluster-md-kmp-defaultUpgrade reiserfs-kmp-defaultUpgrade dtb-renesasUpgrade dtb-freescaleUpgrade kernel-64kbUpgrade dtb-appleUpgrade dtb-socionextUpgrade dtb-apmUpgrade cluster-md-kmp-azureUpgrade kernel-sourceUpgrade kernel-kvmsmallUpgrade kernel-debug-develUpgrade kernel-azure-extraUpgrade dtb-exynosUpgrade ocfs2-kmp-azure | Dec 5, 2025 | Jun 3, 2025 |
| Ubuntu | — | Upgrade linux-image-5.15.0-1070-oracleUpgrade linux-image-5.4.0-1094-bluefieldUpgrade linux-image-lowlatency-64k-hwe-22.04Upgrade linux-image-oracle-lts-22.04Upgrade linux-image-oem-22.04bUpgrade linux-image-virtual-hwe-20.04Upgrade linux-image-oracle-64kUpgrade linux-image-5.15.0-125-generic-lpaeUpgrade linux-image-oem-osp1Upgrade linux-image-generic-hwe-24.04Upgrade linux-image-raspiUpgrade linux-image-generic-hwe-18.04Upgrade linux-image-azureUpgrade linux-image-generic-64k-hwe-22.04Upgrade linux-image-ibm-lts-24.04Upgrade linux-image-5.4.0-1139-azureUpgrade linux-image-5.4.0-200-generic-lpaeUpgrade linux-image-generic-hwe-22.04Upgrade linux-image-kvmUpgrade linux-image-virtual-hwe-24.04Upgrade linux-image-6.8.0-1020-azure-fdeUpgrade linux-image-5.15.0-125-lowlatencyUpgrade linux-image-6.8.0-1019-nvidiaUpgrade linux-image-awsUpgrade linux-image-6.8.0-50-genericUpgrade linux-image-generic-lpae-hwe-20.04Upgrade linux-image-oem-20.04cUpgrade linux-image-oem-22.04cUpgrade linux-image-intel-iotgUpgrade linux-image-5.15.0-125-lowlatency-64kUpgrade linux-image-5.15.0-125-generic-64kUpgrade linux-image-5.15.0-1067-intel-iotgUpgrade linux-image-6.8.0-1017-oracleUpgrade linux-image-lowlatency-hwe-18.04Upgrade linux-image-6.8.0-50-lowlatencyUpgrade linux-image-virtual-hwe-22.04Upgrade linux-image-raspi-hwe-18.04Upgrade linux-image-oem-20.04Upgrade linux-image-virtual-hwe-18.04Upgrade linux-image-oem-24.04aUpgrade linux-image-6.8.0-1019-nvidia-lowlatency-64kUpgrade linux-image-5.4.0-1134-oracleUpgrade linux-image-6.8.0-1016-raspiUpgrade linux-image-5.15.0-1069-kvmUpgrade linux-image-gkeop-5.15Upgrade linux-image-5.15.0-1075-azureUpgrade linux-image-oem-20.04dUpgrade linux-image-6.8.0-1017-oracle-64kUpgrade linux-image-5.4.0-1119-raspiUpgrade linux-image-oem-22.04dUpgrade linux-image-5.15.0-1078-azureUpgrade linux-image-gcpUpgrade linux-image-nvidia-hwe-22.04Upgrade linux-image-azure-fdeUpgrade linux-image-nvidia-6.8Upgrade linux-image-generic-hwe-20.04Upgrade linux-image-6.8.0-1019-nvidia-lowlatencyUpgrade linux-image-nvidia-64kUpgrade linux-image-azure-cvmUpgrade linux-image-nvidia-64k-hwe-22.04Upgrade linux-image-generic-64k-hwe-24.04Upgrade linux-image-ibmUpgrade linux-image-lowlatency-hwe-22.04Upgrade linux-image-genericUpgrade linux-image-6.8.0-1002-gkeopUpgrade linux-image-5.15.0-1065-raspiUpgrade linux-image-5.15.0-1067-nvidiaUpgrade linux-image-snapdragon-hwe-18.04Upgrade linux-image-oem-22.04aUpgrade linux-image-gcp-lts-20.04Upgrade linux-image-nvidiaUpgrade linux-image-lowlatency-64k-hwe-20.04Upgrade linux-image-aws-lts-20.04Upgrade linux-image-5.4.0-1044-iotUpgrade linux-image-5.4.0-1135-awsUpgrade linux-image-5.4.0-200-genericUpgrade linux-image-virtualUpgrade linux-image-6.8.0-1019-gcpUpgrade linux-image-5.4.0-1082-ibmUpgrade linux-image-5.15.0-1065-ibmUpgrade linux-image-oemUpgrade linux-image-lowlatencyUpgrade linux-image-azure-lts-22.04Upgrade linux-image-nvidia-64k-6.8Upgrade linux-image-oem-24.04Upgrade linux-image-generic-lpaeUpgrade linux-image-xilinx-zynqmpUpgrade linux-image-lowlatency-64kUpgrade linux-image-5.4.0-1139-gcpUpgrade linux-image-5.15.0-1072-awsUpgrade linux-image-6.8.0-1015-gkeUpgrade linux-image-oracleUpgrade linux-image-6.8.0-50-lowlatency-64kUpgrade linux-image-gke-5.15Upgrade linux-image-6.8.0-1020-azureUpgrade linux-image-5.4.0-1102-gkeopUpgrade linux-image-oracle-lts-20.04Upgrade linux-image-5.4.0-200-lowlatencyUpgrade linux-image-6.8.0-50-generic-64kUpgrade linux-image-5.15.0-1038-xilinx-zynqmpUpgrade linux-image-5.15.0-1071-gcpUpgrade linux-image-raspi2Upgrade linux-image-nvidia-lowlatency-64kUpgrade linux-image-5.15.0-1067-nvidia-lowlatencyUpgrade linux-image-raspi-nolpaeUpgrade linux-image-gcp-lts-22.04Upgrade linux-image-5.4.0-1123-kvmUpgrade linux-image-5.4.0-1140-azureUpgrade linux-image-generic-64kUpgrade linux-image-ibm-lts-20.04Upgrade linux-image-lowlatency-hwe-20.04Upgrade linux-image-generic-64k-hwe-20.04Upgrade linux-image-gkeUpgrade linux-image-gkeop-6.8Upgrade linux-image-6.8.0-1019-nvidia-64kUpgrade linux-image-aws-lts-22.04Upgrade linux-image-nvidia-lowlatencyUpgrade linux-image-5.15.0-1069-gkeUpgrade linux-image-ibm-classicUpgrade linux-image-5.15.0-1055-gkeopUpgrade linux-image-intelUpgrade linux-image-oem-22.04Upgrade linux-image-azure-lts-20.04Upgrade linux-image-bluefieldUpgrade linux-image-gkeopUpgrade linux-image-oem-20.04bUpgrade linux-image-lowlatency-64k-hwe-24.04Upgrade linux-image-lowlatency-hwe-24.04Upgrade linux-image-6.8.0-1018-oemUpgrade linux-image-gkeop-5.4Upgrade linux-image-6.8.0-1020-awsUpgrade linux-image-6.8.0-1017-ibmUpgrade linux-image-5.15.0-125-genericUpgrade linux-image-5.4.0-1054-xilinx-zynqmp | Nov 4, 2024 | Sep 27, 2024 |
| Vmware Photon_os | — | Use 'tdnf update' to upgrade all packages to the latest version. | Oct 13, 2025 | Sep 27, 2024 |
Prioritise with Active Threat Intelligence
With curated Threat Intelligence, you can see which vulnerabilities truly put you at risk, prioritize what matters most, and act before attackers do.
Explore Intelligence Hub