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.
CVSS Details
- CVSS 3.1 Base Score: 5.5
- CVSS 3.1 Vector: (CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H)
Covered by Rapid7
| Product | Vendor Advisory | Solution File | Added | Published |
|---|---|---|---|---|
| Alma_linux | — | Upgrade kernel-zfcpdump-modulesUpgrade kernel-develUpgrade kernel-cross-headersUpgrade kernelUpgrade kernel-rt-modules-extraUpgrade kernel-rt-develUpgrade bpftoolUpgrade kernel-toolsUpgrade kernel-zfcpdump-coreUpgrade python3-perfUpgrade kernel-rt-debug-coreUpgrade kernel-rtUpgrade kernel-rt-kvmUpgrade kernel-tools-libsUpgrade kernel-rt-debugUpgrade kernel-tools-libs-develUpgrade kernel-debug-modulesUpgrade kernel-rt-debug-kvmUpgrade kernel-debug-develUpgrade kernel-abi-stablelistsUpgrade perfUpgrade kernel-debug-modules-extraUpgrade kernel-modulesUpgrade kernel-docUpgrade kernel-zfcpdumpUpgrade kernel-modules-extraUpgrade kernel-debug-coreUpgrade kernel-rt-coreUpgrade kernel-zfcpdump-develUpgrade kernel-headersUpgrade kernel-debugUpgrade kernel-rt-debug-modulesUpgrade kernel-coreUpgrade kernel-zfcpdump-modules-extraUpgrade kernel-rt-debug-develUpgrade kernel-rt-modulesUpgrade kernel-rt-debug-modules-extra | Aug 12, 2024 | May 1, 2024 |
| Debian | — | Upgrade linux | May 15, 2025 | May 1, 2024 |
| Huawei Euleros 2_0_sp10 | — | Upgrade kernelUpgrade python3-perfUpgrade kernel-tools-libsUpgrade kernel-abi-stablelistsUpgrade kernel-tools | Jul 16, 2024 | May 1, 2024 |
| Huawei Euleros 2_0_sp11 | — | Upgrade kernel-abi-stablelistsUpgrade kernel-toolsUpgrade bpftoolUpgrade kernel-tools-libsUpgrade python3-perfUpgrade kernel | Oct 8, 2024 | May 1, 2024 |
| Huawei Euleros 2_0_sp12 | — | Upgrade bpftoolUpgrade kernel-toolsUpgrade kernelUpgrade kernel-tools-libsUpgrade kernel-abi-stablelistsUpgrade python3-perf | Oct 8, 2024 | May 1, 2024 |
| Huawei Euleros 2_0_sp9 | — | Upgrade python3-perfUpgrade kernel-toolsUpgrade kernel-tools-libsUpgrade kernel | Jul 17, 2024 | May 1, 2024 |
| Oracle_linux | — | Upgrade kernel | Aug 16, 2024 | May 1, 2024 |
| Redhat_linux | — | Upgrade kernelNo solution existsUpgrade kernel-rt | Aug 12, 2024 | May 1, 2024 |
| Rocky_linux | — | Upgrade kernelUpgrade kernel-rt-debug-modules-extraUpgrade kernel-debuginfo-common-x86_64Upgrade kernel-rt-debuginfoUpgrade kernel-tools-libs-develUpgrade kernel-headersUpgrade kernel-rt-modulesUpgrade kernel-rtUpgrade perf-debuginfoUpgrade kernel-rt-debug-develUpgrade kernel-rt-debug-kvmUpgrade kernel-toolsUpgrade kernel-debug-modules-extraUpgrade kernel-develUpgrade kernel-rt-coreUpgrade kernel-modules-extraUpgrade kernel-cross-headersUpgrade kernel-rt-kvmUpgrade perfUpgrade kernel-tools-debuginfoUpgrade kernel-rt-modules-extraUpgrade bpftoolUpgrade bpftool-debuginfoUpgrade kernel-rt-debuginfo-common-x86_64Upgrade kernel-rt-debug-debuginfoUpgrade kernel-rt-debugUpgrade python3-perf-debuginfoUpgrade python3-perfUpgrade kernel-modulesUpgrade kernel-debuginfoUpgrade kernel-rt-debug-modulesUpgrade kernel-rt-develUpgrade kernel-rt-debug-coreUpgrade kernel-debug-modulesUpgrade kernel-coreUpgrade kernel-debug-develUpgrade kernel-debug-debuginfoUpgrade kernel-debug-coreUpgrade kernel-debugUpgrade kernel-tools-libs | Aug 22, 2024 | May 1, 2024 |
| Suse | — | Upgrade kernel-64kb-optionalUpgrade dtb-appleUpgrade cluster-md-kmp-64kbUpgrade kernel-64kbUpgrade kselftests-kmp-azureUpgrade kernel-default-develUpgrade kernel-64kb-extraUpgrade dtb-freescaleUpgrade dtb-renesasUpgrade dtb-sprdUpgrade dtb-alteraUpgrade kernel-azureUpgrade dtb-lgUpgrade dtb-broadcomUpgrade kernel-default-manUpgrade kernel-obs-buildUpgrade kernel-kvmsmall-vdsoUpgrade kernel-rt-extraUpgrade dtb-allwinnerUpgrade kernel-rt_debug-livepatch-develUpgrade kernel-rt-vdsoUpgrade reiserfs-kmp-64kbUpgrade cluster-md-kmp-azureUpgrade kernel-devel-azureUpgrade dtb-socionextUpgrade kernel-docs-htmlUpgrade dtb-caviumUpgrade kernel-rt_debugUpgrade kernel-sourceUpgrade kernel-source-azureUpgrade kernel-rt-optionalUpgrade kernel-debug-develUpgrade gfs2-kmp-azureUpgrade kernel-default-vdsoUpgrade kernel-syms-azureUpgrade kernel-azure-optionalUpgrade kernel-source-vanillaUpgrade dtb-marvellUpgrade kernel-source-rtUpgrade kselftests-kmp-64kbUpgrade kernel-azure-vdsoUpgrade kernel-default-livepatchUpgrade gfs2-kmp-defaultUpgrade ocfs2-kmp-defaultUpgrade dtb-amazonUpgrade kernel-debug-vdsoUpgrade dtb-amdUpgrade kernel-rt_debug-develUpgrade kernel-kvmsmall-livepatch-develUpgrade kernel-azure-extraUpgrade kernel-kvmsmall-develUpgrade dlm-kmp-64kbUpgrade dtb-exynosUpgrade ocfs2-kmp-64kbUpgrade kernel-azure-develUpgrade kernel-64kb-livepatch-develUpgrade kernel-devel-rtUpgrade dtb-mediatekUpgrade dlm-kmp-azureUpgrade kernel-syms-rtUpgrade dtb-armUpgrade dtb-apmUpgrade kernel-develUpgrade kernel-default-baseUpgrade dtb-nvidiaUpgrade kernel-rt_debug-vdsoUpgrade dtb-hisiliconUpgrade kernel-rtUpgrade gfs2-kmp-64kbUpgrade dtb-amlogicUpgrade cluster-md-kmp-defaultUpgrade dlm-kmp-rtUpgrade kernel-macrosUpgrade kernel-debug-livepatch-develUpgrade reiserfs-kmp-rtUpgrade kernel-kvmsmallUpgrade kernel-docsUpgrade kernel-debugUpgrade kernel-64kb-develUpgrade reiserfs-kmp-defaultUpgrade cluster-md-kmp-rtUpgrade reiserfs-kmp-azureUpgrade ocfs2-kmp-azureUpgrade kernel-obs-qaUpgrade kernel-default-livepatch-develUpgrade kernel-azure-livepatch-develUpgrade dtb-xilinxUpgrade dtb-qcomUpgrade kernel-rt-livepatchUpgrade kernel-rt-develUpgrade kselftests-kmp-rtUpgrade kernel-default-extraUpgrade kernel-zfcpdumpUpgrade dtb-rockchipUpgrade kernel-default-base-rebuildUpgrade kernel-defaultUpgrade kernel-default-optionalUpgrade gfs2-kmp-rtUpgrade dlm-kmp-defaultUpgrade ocfs2-kmp-rtUpgrade kselftests-kmp-defaultUpgrade kernel-symsUpgrade kernel-rt-livepatch-devel | Dec 5, 2025 | Sep 10, 2024 |
| Ubuntu | — | Upgrade linux-image-6.8.0-1010-azureUpgrade linux-image-oem-24.04Upgrade linux-image-6.8.0-38-lowlatency-64kUpgrade linux-image-generic-64kUpgrade linux-image-6.8.0-1009-nvidiaUpgrade linux-image-genericUpgrade linux-image-raspiUpgrade linux-image-azureUpgrade linux-image-lowlatency-64kUpgrade linux-image-6.8.0-38-lowlatencyUpgrade linux-image-gkeUpgrade linux-image-6.8.0-1007-raspiUpgrade linux-image-6.8.0-1008-oracle-64kUpgrade linux-image-6.8.0-1010-gcpUpgrade linux-image-intelUpgrade linux-image-6.8.0-1009-nvidia-64kUpgrade linux-image-6.8.0-1006-gkeUpgrade linux-image-oem-24.04aUpgrade linux-image-6.8.0-38-genericUpgrade linux-image-6.8.0-1008-oemUpgrade linux-image-6.8.0-1008-ibmUpgrade linux-image-nvidiaUpgrade linux-image-oracle-64kUpgrade linux-image-6.8.0-1007-intelUpgrade linux-image-lowlatencyUpgrade linux-image-nvidia-64kUpgrade linux-image-ibmUpgrade linux-image-generic-hwe-24.04Upgrade linux-image-generic-64k-hwe-24.04Upgrade linux-image-6.8.0-1010-azure-fdeUpgrade linux-image-virtual-hwe-24.04Upgrade linux-image-ibm-lts-24.04Upgrade linux-image-ibm-classicUpgrade linux-image-oracleUpgrade linux-image-6.8.0-38-generic-64kUpgrade linux-image-azure-fdeUpgrade linux-image-gcpUpgrade linux-image-virtualUpgrade linux-image-awsUpgrade linux-image-generic-lpaeUpgrade linux-image-6.8.0-1011-awsUpgrade linux-image-6.8.0-1008-oracleUpgrade linux-image-kvm | Jul 12, 2024 | May 1, 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