In the Linux kernel, the following vulnerability has been resolved:
net/sched: Fix mirred deadlock on device recursion
When the mirred action is used on a classful egress qdisc and a packet is mirrored or redirected to self we hit a qdisc lock deadlock. See trace below.
[..... other info removed for brevity....] [ 82.890906] [ 82.890906] ============================================ [ 82.890906] WARNING: possible recursive locking detected [ 82.890906] 6.8.0-05205-g77fadd89fe2d-dirty #213 Tainted: G W [ 82.890906] -------------------------------------------- [ 82.890906] ping/418 is trying to acquire lock: [ 82.890906] ffff888006994110 (&sch->q.lock){+.-.}-{3:3}, at: __dev_queue_xmit+0x1778/0x3550 [ 82.890906] [ 82.890906] but task is already holding lock: [ 82.890906] ffff888006994110 (&sch->q.lock){+.-.}-{3:3}, at: __dev_queue_xmit+0x1778/0x3550 [ 82.890906] [ 82.890906] other info that might help us debug this: [ 82.890906] Possible unsafe locking scenario: [ 82.890906] [ 82.890906] CPU0 [ 82.890906] ---- [ 82.890906] lock(&sch->q.lock); [ 82.890906] lock(&sch->q.lock); [ 82.890906] [ 82.890906] *** DEADLOCK *** [ 82.890906] [..... other info removed for brevity....]
Example setup (eth0->eth0) to recreate tc qdisc add dev eth0 root handle 1: htb default 30 tc filter add dev eth0 handle 1: protocol ip prio 2 matchall \ action mirred egress redirect dev eth0
Another example(eth0->eth1->eth0) to recreate tc qdisc add dev eth0 root handle 1: htb default 30 tc filter add dev eth0 handle 1: protocol ip prio 2 matchall \ action mirred egress redirect dev eth1
tc qdisc add dev eth1 root handle 1: htb default 30 tc filter add dev eth1 handle 1: protocol ip prio 2 matchall \ action mirred egress redirect dev eth0
We fix this by adding an owner field (CPU id) to struct Qdisc set after root qdisc is entered. When the softirq enters it a second time, if the qdisc owner is the same CPU, the packet is dropped to break the loop.
| Product | Vendor Advisory | Solution File | Added | Published |
|---|---|---|---|---|
| Alma_linux | — | Upgrade kernel-cross-headersUpgrade kernel-debug-modulesUpgrade kernel-zfcpdump-modulesUpgrade kernel-develUpgrade kernel-rt-kvmUpgrade kernel-tools-libsUpgrade kernel-rt-debugUpgrade kernelUpgrade kernel-tools-libs-develUpgrade kernel-rtUpgrade bpftoolUpgrade kernel-zfcpdump-coreUpgrade kernel-rt-debug-coreUpgrade python3-perfUpgrade kernel-rt-modules-extraUpgrade kernel-toolsUpgrade kernel-rt-develUpgrade kernel-rt-modulesUpgrade kernel-debug-modules-extraUpgrade kernel-abi-stablelistsUpgrade kernel-rt-debug-modulesUpgrade kernel-rt-debug-kvmUpgrade kernel-headersUpgrade kernel-coreUpgrade kernel-zfcpdump-modules-extraUpgrade kernel-docUpgrade perfUpgrade kernel-zfcpdump-develUpgrade kernel-modules-extraUpgrade kernel-rt-coreUpgrade kernel-debugUpgrade kernel-rt-debug-modules-extraUpgrade kernel-debug-develUpgrade kernel-modulesUpgrade kernel-zfcpdumpUpgrade kernel-rt-debug-develUpgrade kernel-debug-core | Aug 12, 2024 | May 1, 2024 |
| Debian | — | Upgrade linux | May 15, 2025 | May 1, 2024 |
| Huawei Euleros 2_0_sp10 | — | Upgrade kernel-abi-stablelistsUpgrade kernel-toolsUpgrade kernel-tools-libsUpgrade python3-perfUpgrade kernel | Jul 16, 2024 | May 1, 2024 |
| Huawei Euleros 2_0_sp11 | — | Upgrade kernel-tools-libsUpgrade kernel-toolsUpgrade bpftoolUpgrade kernel-abi-stablelistsUpgrade kernelUpgrade python3-perf | Oct 8, 2024 | May 1, 2024 |
| Huawei Euleros 2_0_sp12 | — | Upgrade bpftoolUpgrade kernel-toolsUpgrade kernel-tools-libsUpgrade kernelUpgrade kernel-abi-stablelistsUpgrade python3-perf | Oct 8, 2024 | May 1, 2024 |
| Huawei Euleros 2_0_sp9 | — | Upgrade python3-perfUpgrade kernel-toolsUpgrade kernelUpgrade kernel-tools-libs | Jul 17, 2024 | May 1, 2024 |
| Oracle_linux | — | Upgrade kernel | Aug 16, 2024 | May 1, 2024 |
| Redhat_linux | — | Upgrade kernel-rtUpgrade kernelNo solution exists | Aug 12, 2024 | May 1, 2024 |
| Rocky_linux | — | Upgrade perf-debuginfoUpgrade kernel-rt-debug-kvmUpgrade kernel-debug-modules-extraUpgrade kernel-tools-libs-develUpgrade kernel-rt-modulesUpgrade kernel-headersUpgrade kernel-debuginfo-common-x86_64Upgrade kernelUpgrade kernel-rt-debug-modules-extraUpgrade kernel-rt-debuginfoUpgrade kernel-toolsUpgrade kernel-rt-debug-develUpgrade kernel-rtUpgrade kernel-debug-coreUpgrade kernel-develUpgrade kernel-rt-debugUpgrade python3-perf-debuginfoUpgrade python3-perfUpgrade kernel-rt-debug-debuginfoUpgrade perfUpgrade kernel-rt-debuginfo-common-x86_64Upgrade kernel-debug-modulesUpgrade kernel-rt-develUpgrade kernel-rt-debug-coreUpgrade kernel-coreUpgrade bpftool-debuginfoUpgrade kernel-tools-debuginfoUpgrade kernel-debuginfoUpgrade kernel-tools-libsUpgrade kernel-rt-debug-modulesUpgrade kernel-modulesUpgrade kernel-rt-modules-extraUpgrade bpftoolUpgrade kernel-modules-extraUpgrade kernel-cross-headersUpgrade kernel-rt-kvmUpgrade kernel-rt-coreUpgrade kernel-debugUpgrade kernel-debug-develUpgrade kernel-debug-debuginfo | Aug 22, 2024 | May 1, 2024 |
| Suse | — | Upgrade ocfs2-kmp-64kbUpgrade dtb-appleUpgrade kernel-default-develUpgrade kernel-azureUpgrade kernel-rt_debug-livepatch-develUpgrade dtb-sprdUpgrade kselftests-kmp-azureUpgrade dtb-alteraUpgrade kernel-kvmsmall-livepatch-develUpgrade ocfs2-kmp-defaultUpgrade kernel-default-livepatchUpgrade dtb-amazonUpgrade kernel-azure-vdsoUpgrade gfs2-kmp-defaultUpgrade kernel-docs-htmlUpgrade dtb-exynosUpgrade dtb-allwinnerUpgrade cluster-md-kmp-azureUpgrade dtb-freescaleUpgrade kernel-default-manUpgrade dtb-caviumUpgrade dtb-lgUpgrade dlm-kmp-64kbUpgrade kernel-obs-buildUpgrade kernel-rt_debugUpgrade reiserfs-kmp-64kbUpgrade kernel-rt-vdsoUpgrade kernel-source-vanillaUpgrade kernel-64kbUpgrade kernel-debug-develUpgrade gfs2-kmp-azureUpgrade kernel-default-vdsoUpgrade cluster-md-kmp-64kbUpgrade kernel-rt-optionalUpgrade dtb-broadcomUpgrade dtb-amdUpgrade kernel-debug-vdsoUpgrade kernel-source-azureUpgrade kernel-kvmsmall-vdsoUpgrade dtb-renesasUpgrade kernel-devel-azureUpgrade kernel-64kb-extraUpgrade kernel-rt-extraUpgrade dtb-socionextUpgrade kernel-64kb-optionalUpgrade kernel-syms-azureUpgrade kernel-source-rtUpgrade kernel-kvmsmall-develUpgrade kernel-azure-develUpgrade kernel-azure-extraUpgrade kselftests-kmp-64kbUpgrade kernel-azure-optionalUpgrade dtb-marvellUpgrade kernel-rt_debug-develUpgrade kernel-sourceUpgrade dlm-kmp-rtUpgrade dtb-nvidiaUpgrade dtb-qcomUpgrade kernel-default-optionalUpgrade kernel-default-extraUpgrade kernel-default-baseUpgrade kernel-develUpgrade dtb-apmUpgrade dtb-armUpgrade ocfs2-kmp-azureUpgrade kernel-default-livepatch-develUpgrade reiserfs-kmp-defaultUpgrade cluster-md-kmp-rtUpgrade kernel-azure-livepatch-develUpgrade kernel-rt_debug-vdsoUpgrade kernel-rtUpgrade gfs2-kmp-64kbUpgrade dtb-hisiliconUpgrade kernel-rt-livepatch-develUpgrade kernel-zfcpdumpUpgrade kernel-symsUpgrade ocfs2-kmp-rtUpgrade reiserfs-kmp-azureUpgrade kernel-obs-qaUpgrade dtb-xilinxUpgrade dlm-kmp-defaultUpgrade kernel-debugUpgrade dtb-amlogicUpgrade kernel-rt-develUpgrade kernel-kvmsmallUpgrade kernel-docsUpgrade kernel-64kb-develUpgrade kernel-defaultUpgrade kernel-64kb-livepatch-develUpgrade kselftests-kmp-rtUpgrade kernel-macrosUpgrade kernel-debug-livepatch-develUpgrade cluster-md-kmp-defaultUpgrade reiserfs-kmp-rtUpgrade kernel-default-base-rebuildUpgrade dtb-rockchipUpgrade kernel-devel-rtUpgrade gfs2-kmp-rtUpgrade dtb-mediatekUpgrade dlm-kmp-azureUpgrade kernel-rt-livepatchUpgrade kselftests-kmp-defaultUpgrade kernel-syms-rt | Dec 5, 2025 | Sep 10, 2024 |
| Ubuntu | — | Upgrade linux-image-genericUpgrade linux-image-6.8.0-38-lowlatencyUpgrade linux-image-6.8.0-1007-raspiUpgrade linux-image-6.8.0-1008-oracle-64kUpgrade linux-image-intelUpgrade linux-image-azureUpgrade linux-image-6.8.0-1010-gcpUpgrade linux-image-gkeUpgrade linux-image-generic-64kUpgrade linux-image-6.8.0-38-lowlatency-64kUpgrade linux-image-6.8.0-1010-azureUpgrade linux-image-raspiUpgrade linux-image-lowlatency-64kUpgrade linux-image-6.8.0-1009-nvidia-64kUpgrade linux-image-6.8.0-1009-nvidiaUpgrade linux-image-oem-24.04Upgrade linux-image-6.8.0-1007-intelUpgrade linux-image-nvidia-64kUpgrade linux-image-lowlatencyUpgrade linux-image-6.8.0-1008-ibmUpgrade linux-image-nvidiaUpgrade linux-image-generic-hwe-24.04Upgrade linux-image-virtualUpgrade linux-image-6.8.0-1006-gkeUpgrade linux-image-oem-24.04aUpgrade linux-image-ibmUpgrade linux-image-generic-64k-hwe-24.04Upgrade linux-image-6.8.0-1008-oemUpgrade linux-image-6.8.0-38-generic-64kUpgrade linux-image-ibm-lts-24.04Upgrade linux-image-ibm-classicUpgrade linux-image-oracleUpgrade linux-image-6.8.0-1010-azure-fdeUpgrade linux-image-virtual-hwe-24.04Upgrade linux-image-6.8.0-1011-awsUpgrade linux-image-generic-lpaeUpgrade linux-image-6.8.0-38-genericUpgrade linux-image-6.8.0-1008-oracleUpgrade linux-image-kvmUpgrade linux-image-gcpUpgrade linux-image-oracle-64kUpgrade linux-image-awsUpgrade linux-image-azure-fde | Jul 12, 2024 | May 1, 2024 |
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