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 kernel-debuginfo-common-x86_64Upgrade bpftoolUpgrade kernel-develUpgrade kernel-toolsUpgrade kernel-debuginfo-common-aarch64Upgrade python-perfUpgrade kernelUpgrade perf-debuginfoUpgrade kernel-tools-debuginfoUpgrade kernel-headersUpgrade perfUpgrade bpftool-debuginfoUpgrade kernel-tools-develUpgrade kernel-debuginfoUpgrade kernel-livepatch-5.15.167-112.165Upgrade python-perf-debuginfoUpgrade kernel-livepatch-5.10.226-214.879 | Oct 29, 2024 | Sep 27, 2024 |
| Amazon_linux_2023 | — | Upgrade perf-debuginfoUpgrade kernel-headersUpgrade kernel-libbpfUpgrade kernel-modules-extraUpgrade perfUpgrade kernel-debuginfoUpgrade kernel-tools-develUpgrade kernel-livepatch-6.1.111-120.187Upgrade kernel-tools-debuginfoUpgrade python3-perf-debuginfoUpgrade kernelUpgrade kernel-develUpgrade kernel-debuginfo-common-aarch64Upgrade kernel-libbpf-develUpgrade python3-perfUpgrade bpftoolUpgrade kernel-modules-extra-commonUpgrade bpftool-debuginfoUpgrade kernel-debuginfo-common-x86_64Upgrade kernel-toolsUpgrade kernel-libbpf-static | 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 | — | No solution existsUpgrade kernel-rtUpgrade kernel | May 15, 2025 | Sep 27, 2024 |
| Suse | — | Upgrade kernel-obs-buildUpgrade kernel-defaultUpgrade kernel-default-base-rebuildUpgrade gfs2-kmp-defaultUpgrade dtb-sprdUpgrade kselftests-kmp-defaultUpgrade dlm-kmp-rtUpgrade dtb-amlogicUpgrade kernel-rt-extraUpgrade kernel-source-rtUpgrade kernel-rt_debug-livepatch-develUpgrade kernel-rt_debug-develUpgrade kernel-rt_debug-vdsoUpgrade kernel-azure-develUpgrade kernel-rt-livepatch-develUpgrade dtb-nvidiaUpgrade kernel-source-vanillaUpgrade kernel-64kb-extraUpgrade kernel-syms-azureUpgrade dtb-alteraUpgrade reiserfs-kmp-azureUpgrade dtb-armUpgrade dtb-rockchipUpgrade cluster-md-kmp-64kbUpgrade gfs2-kmp-azureUpgrade kernel-default-vdsoUpgrade kernel-kvmsmall-vdsoUpgrade kernel-azure-livepatch-develUpgrade kernel-azureUpgrade kselftests-kmp-azureUpgrade kernel-syms-rtUpgrade kernel-rt-vdsoUpgrade dtb-caviumUpgrade kselftests-kmp-rtUpgrade reiserfs-kmp-64kbUpgrade kernel-debug-vdsoUpgrade kernel-rt-optionalUpgrade dtb-qcomUpgrade kernel-docsUpgrade kernel-azure-vdsoUpgrade kernel-rtUpgrade kernel-64kb-develUpgrade kernel-symsUpgrade kernel-devel-rtUpgrade ocfs2-kmp-rtUpgrade kernel-kvmsmall-develUpgrade kernel-azure-optionalUpgrade ocfs2-kmp-defaultUpgrade kselftests-kmp-64kbUpgrade kernel-default-optionalUpgrade kernel-rt_debugUpgrade kernel-64kbUpgrade dtb-freescaleUpgrade kernel-default-livepatchUpgrade cluster-md-kmp-rtUpgrade kernel-default-extraUpgrade kernel-source-azureUpgrade kernel-default-livepatch-develUpgrade kernel-debugUpgrade gfs2-kmp-64kbUpgrade dtb-mediatekUpgrade dtb-marvellUpgrade dtb-lgUpgrade ocfs2-kmp-64kbUpgrade reiserfs-kmp-rtUpgrade dtb-broadcomUpgrade kernel-rt-livepatchUpgrade kernel-macrosUpgrade kernel-rt-develUpgrade dtb-amazonUpgrade dlm-kmp-azureUpgrade kernel-default-baseUpgrade dlm-kmp-defaultUpgrade dtb-allwinnerUpgrade kernel-default-develUpgrade kernel-zfcpdumpUpgrade dtb-amdUpgrade dlm-kmp-64kbUpgrade dtb-appleUpgrade kernel-debug-develUpgrade kernel-azure-extraUpgrade kernel-64kb-optionalUpgrade dtb-socionextUpgrade dtb-renesasUpgrade dtb-exynosUpgrade dtb-apmUpgrade cluster-md-kmp-azureUpgrade reiserfs-kmp-defaultUpgrade kernel-obs-qaUpgrade kernel-develUpgrade dtb-hisiliconUpgrade gfs2-kmp-rtUpgrade dtb-xilinxUpgrade kernel-sourceUpgrade kernel-kvmsmallUpgrade cluster-md-kmp-defaultUpgrade kernel-devel-azureUpgrade ocfs2-kmp-azureUpgrade kernel-docs-html | Dec 5, 2025 | Jun 3, 2025 |
| Ubuntu | — | Upgrade linux-image-gcp-lts-22.04Upgrade linux-image-oem-22.04aUpgrade linux-image-lowlatency-64k-hwe-20.04Upgrade linux-image-5.4.0-200-genericUpgrade linux-image-oracle-lts-20.04Upgrade linux-image-nvidiaUpgrade linux-image-5.15.0-1055-gkeopUpgrade linux-image-nvidia-lowlatencyUpgrade linux-image-5.15.0-125-genericUpgrade linux-image-intelUpgrade linux-image-genericUpgrade linux-image-6.8.0-1019-nvidia-64kUpgrade linux-image-6.8.0-1017-ibmUpgrade linux-image-oemUpgrade linux-image-generic-lpaeUpgrade linux-image-oem-24.04Upgrade linux-image-aws-lts-22.04Upgrade linux-image-5.15.0-1065-raspiUpgrade linux-image-5.4.0-1054-xilinx-zynqmpUpgrade linux-image-azure-lts-22.04Upgrade linux-image-6.8.0-1015-gkeUpgrade linux-image-5.4.0-1123-kvmUpgrade linux-image-gcp-lts-20.04Upgrade linux-image-nvidia-64k-hwe-22.04Upgrade linux-image-5.15.0-1067-nvidiaUpgrade linux-image-5.15.0-1069-gkeUpgrade linux-image-oem-22.04Upgrade linux-image-lowlatency-hwe-20.04Upgrade linux-image-generic-64k-hwe-24.04Upgrade linux-image-5.4.0-1139-gcpUpgrade linux-image-nvidia-64k-6.8Upgrade linux-image-5.15.0-1067-nvidia-lowlatencyUpgrade linux-image-raspi2Upgrade linux-image-nvidia-lowlatency-64kUpgrade linux-image-gkeop-6.8Upgrade linux-image-gkeop-5.4Upgrade linux-image-6.8.0-1018-oemUpgrade linux-image-gkeopUpgrade linux-image-lowlatency-64k-hwe-24.04Upgrade linux-image-azure-lts-20.04Upgrade linux-image-oem-20.04bUpgrade linux-image-lowlatency-hwe-24.04Upgrade linux-image-aws-lts-20.04Upgrade linux-image-6.8.0-1020-azureUpgrade linux-image-5.4.0-1082-ibmUpgrade linux-image-6.8.0-50-lowlatency-64kUpgrade linux-image-6.8.0-1020-awsUpgrade linux-image-6.8.0-1019-gcpUpgrade linux-image-lowlatency-64kUpgrade linux-image-bluefieldUpgrade linux-image-5.4.0-1044-iotUpgrade linux-image-5.4.0-200-lowlatencyUpgrade linux-image-xilinx-zynqmpUpgrade linux-image-5.4.0-1140-azureUpgrade linux-image-generic-64k-hwe-20.04Upgrade linux-image-5.4.0-1102-gkeopUpgrade linux-image-lowlatency-hwe-22.04Upgrade linux-image-raspi-nolpaeUpgrade linux-image-virtualUpgrade linux-image-gkeUpgrade linux-image-lowlatencyUpgrade linux-image-oracleUpgrade linux-image-generic-64kUpgrade linux-image-5.15.0-1071-gcpUpgrade linux-image-ibmUpgrade linux-image-snapdragon-hwe-18.04Upgrade linux-image-6.8.0-50-generic-64kUpgrade linux-image-5.15.0-1072-awsUpgrade linux-image-5.4.0-1135-awsUpgrade linux-image-6.8.0-1002-gkeopUpgrade linux-image-ibm-classicUpgrade linux-image-5.15.0-1038-xilinx-zynqmpUpgrade linux-image-5.15.0-1065-ibmUpgrade linux-image-gke-5.15Upgrade linux-image-ibm-lts-20.04Upgrade linux-image-oem-22.04cUpgrade linux-image-6.8.0-1016-raspiUpgrade linux-image-5.4.0-1094-bluefieldUpgrade linux-image-oracle-lts-22.04Upgrade linux-image-gcpUpgrade linux-image-oracle-64kUpgrade linux-image-azure-cvmUpgrade linux-image-virtual-hwe-18.04Upgrade linux-image-6.8.0-50-genericUpgrade linux-image-6.8.0-1019-nvidia-lowlatency-64kUpgrade linux-image-oem-24.04aUpgrade linux-image-5.4.0-200-generic-lpaeUpgrade linux-image-generic-hwe-22.04Upgrade linux-image-awsUpgrade linux-image-ibm-lts-24.04Upgrade linux-image-nvidia-64kUpgrade linux-image-5.4.0-1139-azureUpgrade linux-image-generic-lpae-hwe-20.04Upgrade linux-image-5.15.0-1075-azureUpgrade linux-image-oem-22.04bUpgrade linux-image-5.15.0-125-lowlatency-64kUpgrade linux-image-lowlatency-hwe-18.04Upgrade linux-image-virtual-hwe-22.04Upgrade linux-image-5.4.0-1119-raspiUpgrade linux-image-6.8.0-1017-oracleUpgrade linux-image-6.8.0-50-lowlatencyUpgrade linux-image-generic-hwe-24.04Upgrade linux-image-oem-osp1Upgrade linux-image-nvidia-6.8Upgrade linux-image-nvidia-hwe-22.04Upgrade linux-image-5.15.0-1069-kvmUpgrade linux-image-virtual-hwe-20.04Upgrade linux-image-6.8.0-1017-oracle-64kUpgrade linux-image-5.15.0-125-generic-64kUpgrade linux-image-azure-fdeUpgrade linux-image-5.15.0-1067-intel-iotgUpgrade linux-image-oem-20.04dUpgrade linux-image-gkeop-5.15Upgrade linux-image-raspiUpgrade linux-image-generic-64k-hwe-22.04Upgrade linux-image-generic-hwe-18.04Upgrade linux-image-generic-hwe-20.04Upgrade linux-image-kvmUpgrade linux-image-5.15.0-125-generic-lpaeUpgrade linux-image-lowlatency-64k-hwe-22.04Upgrade linux-image-6.8.0-1019-nvidia-lowlatencyUpgrade linux-image-5.4.0-1134-oracleUpgrade linux-image-oem-22.04dUpgrade linux-image-oem-20.04cUpgrade linux-image-6.8.0-1020-azure-fdeUpgrade linux-image-raspi-hwe-18.04Upgrade linux-image-intel-iotgUpgrade linux-image-5.15.0-1070-oracleUpgrade linux-image-5.15.0-1078-azureUpgrade linux-image-6.8.0-1019-nvidiaUpgrade linux-image-5.15.0-125-lowlatencyUpgrade linux-image-virtual-hwe-24.04Upgrade linux-image-oem-20.04Upgrade linux-image-azure | 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 |
Prioritize 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