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