In the Linux kernel, the following vulnerability has been resolved:
net/sched: flower: Fix chain template offload
When a qdisc is deleted from a net device the stack instructs the underlying driver to remove its flow offload callback from the associated filter block using the 'FLOW_BLOCK_UNBIND' command. The stack then continues to replay the removal of the filters in the block for this driver by iterating over the chains in the block and invoking the 'reoffload' operation of the classifier being used. In turn, the classifier in its 'reoffload' operation prepares and emits a 'FLOW_CLS_DESTROY' command for each filter.
However, the stack does not do the same for chain templates and the underlying driver never receives a 'FLOW_CLS_TMPLT_DESTROY' command when a qdisc is deleted. This results in a memory leak [1] which can be reproduced using [2].
Fix by introducing a 'tmplt_reoffload' operation and have the stack invoke it with the appropriate arguments as part of the replay. Implement the operation in the sole classifier that supports chain templates (flower) by emitting the 'FLOW_CLS_TMPLT_{CREATE,DESTROY}' command based on whether a flow offload callback is being bound to a filter block or being unbound from one.
As far as I can tell, the issue happens since cited commit which reordered tcf_block_offload_unbind() before tcf_block_flush_all_chains() in __tcf_block_put(). The order cannot be reversed as the filter block is expected to be freed after flushing all the chains.
[1] unreferenced object 0xffff888107e28800 (size 2048): comm "tc", pid 1079, jiffies 4294958525 (age 3074.287s) hex dump (first 32 bytes): b1 a6 7c 11 81 88 ff ff e0 5b b3 10 81 88 ff ff ..|......[...... 01 00 00 00 00 00 00 00 e0 aa b0 84 ff ff ff ff ................ backtrace: [<ffffffff81c06a68>] __kmem_cache_alloc_node+0x1e8/0x320 [<ffffffff81ab374e>] __kmalloc+0x4e/0x90 [<ffffffff832aec6d>] mlxsw_sp_acl_ruleset_get+0x34d/0x7a0 [<ffffffff832bc195>] mlxsw_sp_flower_tmplt_create+0x145/0x180 [<ffffffff832b2e1a>] mlxsw_sp_flow_block_cb+0x1ea/0x280 [<ffffffff83a10613>] tc_setup_cb_call+0x183/0x340 [<ffffffff83a9f85a>] fl_tmplt_create+0x3da/0x4c0 [<ffffffff83a22435>] tc_ctl_chain+0xa15/0x1170 [<ffffffff838a863c>] rtnetlink_rcv_msg+0x3cc/0xed0 [<ffffffff83ac87f0>] netlink_rcv_skb+0x170/0x440 [<ffffffff83ac6270>] netlink_unicast+0x540/0x820 [<ffffffff83ac6e28>] netlink_sendmsg+0x8d8/0xda0 [<ffffffff83793def>] ____sys_sendmsg+0x30f/0xa80 [<ffffffff8379d29a>] ___sys_sendmsg+0x13a/0x1e0 [<ffffffff8379d50c>] __sys_sendmsg+0x11c/0x1f0 [<ffffffff843b9ce0>] do_syscall_64+0x40/0xe0 unreferenced object 0xffff88816d2c0400 (size 1024): comm "tc", pid 1079, jiffies 4294958525 (age 3074.287s) hex dump (first 32 bytes): 40 00 00 00 00 00 00 00 57 f6 38 be 00 00 00 00 @.......W.8..... 10 04 2c 6d 81 88 ff ff 10 04 2c 6d 81 88 ff ff ..,m......,m.... backtrace: [<ffffffff81c06a68>] __kmem_cache_alloc_node+0x1e8/0x320 [<ffffffff81ab36c1>] __kmalloc_node+0x51/0x90 [<ffffffff81a8ed96>] kvmalloc_node+0xa6/0x1f0 [<ffffffff82827d03>] bucket_table_alloc.isra.0+0x83/0x460 [<ffffffff82828d2b>] rhashtable_init+0x43b/0x7c0 [<ffffffff832aed48>] mlxsw_sp_acl_ruleset_get+0x428/0x7a0 [<ffffffff832bc195>] mlxsw_sp_flower_tmplt_create+0x145/0x180 [<ffffffff832b2e1a>] mlxsw_sp_flow_block_cb+0x1ea/0x280 [<ffffffff83a10613>] tc_setup_cb_call+0x183/0x340 [<ffffffff83a9f85a>] fl_tmplt_create+0x3da/0x4c0 [<ffffffff83a22435>] tc_ctl_chain+0xa15/0x1170 [<ffffffff838a863c>] rtnetlink_rcv_msg+0x3cc/0xed0 [<ffffffff83ac87f0>] netlink_rcv_skb+0x170/0x440 [<ffffffff83ac6270>] netlink_unicast+0x540/0x820 [<ffffffff83ac6e28>] netlink_sendmsg+0x8d8/0xda0 [<ffffffff83793def>] ____sys_sendmsg+0x30f/0xa80
[2] # tc qdisc add dev swp1 clsact # tc chain add dev swp1 ingress proto ip chain 1 flower dst_ip 0.0.0.0/32 # tc qdisc del dev ---truncated---
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 |
|---|---|---|---|---|
| Alma_linux | — | Upgrade python3-perfUpgrade kernel-debug-develUpgrade kernel-zfcpdump-modules-extraUpgrade kernel-modulesUpgrade kernel-rt-coreUpgrade kernel-headersUpgrade kernel-rt-debug-develUpgrade kernel-debug-modules-extraUpgrade kernel-zfcpdumpUpgrade perfUpgrade kernel-abi-stablelistsUpgrade kernel-zfcpdump-develUpgrade kernel-docUpgrade kernel-rt-debug-kvmUpgrade kernel-debugUpgrade kernel-rt-debug-modules-extraUpgrade kernel-rt-modulesUpgrade kernel-modules-extraUpgrade kernel-debug-coreUpgrade kernel-rt-debug-modulesUpgrade kernel-coreUpgrade kernel-zfcpdump-coreUpgrade kernel-tools-libsUpgrade kernel-tools-libs-develUpgrade kernelUpgrade kernel-rt-debug-coreUpgrade kernel-zfcpdump-modulesUpgrade kernel-debug-modulesUpgrade kernel-rt-kvmUpgrade kernel-cross-headersUpgrade bpftoolUpgrade kernel-rt-debugUpgrade kernel-develUpgrade kernel-rtUpgrade kernel-rt-develUpgrade kernel-toolsUpgrade kernel-rt-modules-extra | Aug 12, 2024 | Apr 2, 2024 |
| Debian | — | Upgrade linuxNo solution exists | May 15, 2025 | Apr 2, 2024 |
| Huawei Euleros 2_0_sp10 | — | Upgrade kernel-toolsUpgrade kernel-tools-libsUpgrade kernel-abi-stablelistsUpgrade kernelUpgrade python3-perf | Jul 16, 2024 | Apr 2, 2024 |
| Huawei Euleros 2_0_sp11 | — | Upgrade kernel-abi-stablelistsUpgrade kernel-tools-libsUpgrade kernel-toolsUpgrade bpftoolUpgrade kernelUpgrade python3-perf | Jun 26, 2024 | Apr 2, 2024 |
| Huawei Euleros 2_0_sp12 | — | Upgrade kernel-abi-stablelistsUpgrade kernel-toolsUpgrade kernelUpgrade python3-perfUpgrade bpftoolUpgrade kernel-tools-libs | Oct 8, 2024 | Apr 2, 2024 |
| Huawei Euleros 2_0_sp9 | — | Upgrade kernel-toolsUpgrade kernelUpgrade python3-perfUpgrade kernel-tools-libs | Jul 17, 2024 | Apr 2, 2024 |
| Oracle_linux | — | Upgrade kernel | Aug 16, 2024 | Apr 2, 2024 |
| Redhat_linux | — | Upgrade kernel-rtNo solution existsUpgrade kernel | Aug 12, 2024 | Apr 2, 2024 |
| Rocky_linux | — | Upgrade kernel-rt-debug-modulesUpgrade python3-perfUpgrade kernel-debuginfoUpgrade kernel-tools-libsUpgrade kernel-tools-debuginfoUpgrade kernel-rt-kvmUpgrade kernel-debug-debuginfoUpgrade kernel-rt-debug-debuginfoUpgrade perfUpgrade kernel-rt-debugUpgrade bpftoolUpgrade kernel-debugUpgrade kernel-debug-modulesUpgrade kernel-modulesUpgrade kernel-rt-coreUpgrade kernel-cross-headersUpgrade kernel-debug-develUpgrade kernel-rt-debug-coreUpgrade bpftool-debuginfoUpgrade kernel-debug-coreUpgrade kernel-modules-extraUpgrade kernel-coreUpgrade kernel-develUpgrade kernel-rt-debuginfo-common-x86_64Upgrade kernel-rt-modules-extraUpgrade kernel-rt-develUpgrade python3-perf-debuginfoUpgrade perf-debuginfoUpgrade kernel-rt-modulesUpgrade kernel-toolsUpgrade kernelUpgrade kernel-rt-debuginfoUpgrade kernel-rt-debug-kvmUpgrade kernel-rtUpgrade kernel-debuginfo-common-x86_64Upgrade kernel-rt-debug-develUpgrade kernel-headersUpgrade kernel-tools-libs-develUpgrade kernel-debug-modules-extraUpgrade kernel-rt-debug-modules-extra | Aug 22, 2024 | Apr 2, 2024 |
| Suse | — | Upgrade kernel-symsUpgrade dtb-hisiliconUpgrade kernel-develUpgrade dtb-amdUpgrade kernel-64kb-develUpgrade kernel-default-livepatchUpgrade reiserfs-kmp-64kbUpgrade cluster-md-kmp-azureUpgrade kernel-64kb-livepatch-develUpgrade kernel-kvmsmall-vdsoUpgrade kernel-devel-azureUpgrade kernel-zfcpdumpUpgrade gfs2-kmp-64kbUpgrade dtb-freescaleUpgrade dtb-caviumUpgrade kernel-default-vdsoUpgrade kernel-debug-livepatch-develUpgrade dtb-broadcomUpgrade cluster-md-kmp-defaultUpgrade kernel-rt_debug-develUpgrade kselftests-kmp-64kbUpgrade reiserfs-kmp-defaultUpgrade kernel-macrosUpgrade gfs2-kmp-azureUpgrade dtb-apmUpgrade kernel-docs-htmlUpgrade kernel-default-extraUpgrade dtb-amlogicUpgrade kernel-sourceUpgrade kernel-syms-azureUpgrade kernel-debugUpgrade dtb-appleUpgrade ocfs2-kmp-64kbUpgrade dtb-exynosUpgrade dlm-kmp-64kbUpgrade kernel-kvmsmall-develUpgrade kernel-source-azureUpgrade kernel-default-develUpgrade dtb-alteraUpgrade kselftests-kmp-azureUpgrade gfs2-kmp-rtUpgrade kernel-rt_debugUpgrade kernel-64kb-optionalUpgrade kernel-64kbUpgrade dtb-marvellUpgrade dtb-amazonUpgrade kernel-kvmsmallUpgrade dtb-lgUpgrade kernel-kvmsmall-livepatch-develUpgrade kernel-azure-livepatch-develUpgrade kernel-azure-extraUpgrade ocfs2-kmp-rtUpgrade kernel-obs-qaUpgrade kernel-source-rtUpgrade kernel-debug-develUpgrade kernel-azure-optionalUpgrade cluster-md-kmp-rtUpgrade kernel-obs-buildUpgrade kernel-64kb-extraUpgrade kernel-azure-vdsoUpgrade kselftests-kmp-defaultUpgrade gfs2-kmp-defaultUpgrade kernel-debug-vdsoUpgrade kernel-rt-livepatch-devel | Dec 5, 2025 | Sep 10, 2024 |
| Ubuntu | — | Upgrade linux-image-oem-osp1Upgrade linux-image-6.5.0-1024-oracle-64kUpgrade linux-image-oem-20.04Upgrade linux-image-generic-64k-hwe-20.04Upgrade linux-image-5.15.0-1071-gcpUpgrade linux-image-6.5.0-41-lowlatencyUpgrade linux-image-5.15.0-1075-azureUpgrade linux-image-oem-22.04Upgrade linux-image-ibmUpgrade linux-image-5.4.0-1044-iotUpgrade linux-image-snapdragon-hwe-18.04Upgrade linux-image-6.5.0-1017-laptopUpgrade linux-image-generic-64k-hwe-22.04Upgrade linux-image-oem-20.04bUpgrade linux-image-azure-lts-22.04Upgrade linux-image-virtual-hwe-22.04Upgrade linux-image-nvidia-64k-hwe-22.04Upgrade linux-image-virtual-hwe-20.04Upgrade linux-image-5.15.0-125-generic-lpaeUpgrade linux-image-5.15.0-1067-nvidiaUpgrade linux-image-5.15.0-125-lowlatency-64kUpgrade linux-image-lowlatency-64kUpgrade linux-image-5.15.0-1069-gkeUpgrade linux-image-gkeUpgrade linux-image-6.5.0-1021-nvidia-64kUpgrade linux-image-5.15.0-1069-kvmUpgrade linux-image-5.15.0-1065-raspiUpgrade linux-image-5.15.0-1055-gkeopUpgrade linux-image-oem-20.04cUpgrade linux-image-oracle-lts-20.04Upgrade linux-image-starfiveUpgrade linux-image-6.5.0-1015-starfiveUpgrade linux-image-6.5.0-41-generic-64kUpgrade linux-image-lowlatency-64k-hwe-22.04Upgrade linux-image-5.15.0-1067-nvidia-lowlatencyUpgrade linux-image-gkeopUpgrade linux-image-lowlatency-hwe-20.04Upgrade linux-image-nvidia-6.5Upgrade linux-image-azure-lts-20.04Upgrade linux-image-lowlatency-hwe-18.04Upgrade linux-image-intel-iotgUpgrade linux-image-6.5.0-1022-azure-fdeUpgrade linux-image-5.4.0-1135-awsUpgrade linux-image-lowlatencyUpgrade linux-image-generic-lpaeUpgrade linux-image-nvidia-hwe-22.04Upgrade linux-image-oem-22.04cUpgrade linux-image-gcpUpgrade linux-image-5.15.0-125-lowlatencyUpgrade linux-image-5.15.0-125-generic-64kUpgrade linux-image-gkeop-5.4Upgrade linux-image-5.4.0-1054-xilinx-zynqmpUpgrade linux-image-nvidiaUpgrade linux-image-intelUpgrade linux-image-6.5.0-41-genericUpgrade linux-image-oem-22.04aUpgrade linux-image-gcp-lts-22.04Upgrade linux-image-gke-5.15Upgrade linux-image-ibm-lts-20.04Upgrade linux-image-raspiUpgrade linux-image-6.5.0-1021-nvidiaUpgrade linux-image-5.4.0-200-genericUpgrade linux-image-genericUpgrade linux-image-xilinx-zynqmpUpgrade linux-image-5.15.0-1065-ibmUpgrade linux-image-5.4.0-1102-gkeopUpgrade linux-image-6.5.0-1022-azureUpgrade linux-image-generic-64kUpgrade linux-image-oracle-64kUpgrade linux-image-5.15.0-125-genericUpgrade linux-image-5.15.0-1072-awsUpgrade linux-image-5.4.0-200-generic-lpaeUpgrade linux-image-5.4.0-1082-ibmUpgrade linux-image-oemUpgrade linux-image-azureUpgrade linux-image-5.4.0-1123-kvmUpgrade linux-image-azure-fdeUpgrade linux-image-5.4.0-1134-oracleUpgrade linux-image-aws-lts-20.04Upgrade linux-image-5.4.0-1140-azureUpgrade linux-image-generic-hwe-18.04Upgrade linux-image-raspi-nolpaeUpgrade linux-image-aws-lts-22.04Upgrade linux-image-5.15.0-1078-azureUpgrade linux-image-5.4.0-1139-gcpUpgrade linux-image-6.5.0-1021-awsUpgrade linux-image-5.15.0-1067-intel-iotgUpgrade linux-image-5.4.0-1139-azureUpgrade linux-image-oem-20.04dUpgrade linux-image-lowlatency-hwe-22.04Upgrade linux-image-5.4.0-1094-bluefieldUpgrade linux-image-virtualUpgrade linux-image-oem-22.04dUpgrade linux-image-5.4.0-200-lowlatencyUpgrade linux-image-azure-cvmUpgrade linux-image-nvidia-64k-6.5Upgrade linux-image-oem-22.04bUpgrade linux-image-kvmUpgrade linux-image-generic-hwe-20.04Upgrade linux-image-bluefieldUpgrade linux-image-6.5.0-1024-oemUpgrade linux-image-generic-hwe-22.04Upgrade linux-image-6.5.0-41-lowlatency-64kUpgrade linux-image-6.5.0-1018-raspiUpgrade linux-image-raspi-hwe-18.04Upgrade linux-image-6.5.0-1024-oracleUpgrade linux-image-laptop-23.10Upgrade linux-image-generic-lpae-hwe-20.04Upgrade linux-image-raspi2Upgrade linux-image-5.4.0-1119-raspiUpgrade linux-image-awsUpgrade linux-image-gkeop-5.15Upgrade linux-image-oracleUpgrade linux-image-5.15.0-1038-xilinx-zynqmpUpgrade linux-image-virtual-hwe-18.04Upgrade linux-image-6.5.0-1022-gcpUpgrade linux-image-lowlatency-64k-hwe-20.04Upgrade linux-image-nvidia-lowlatencyUpgrade linux-image-oracle-lts-22.04Upgrade linux-image-5.15.0-1070-oracleUpgrade linux-image-gcp-lts-20.04 | May 17, 2024 | Apr 2, 2024 |
| Vmware Photon_os | — | Use 'tdnf update' to upgrade all packages to the latest version. | Jul 2, 2025 | Apr 2, 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