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