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-zfcpdumpUpgrade kernel-zfcpdump-develUpgrade perfUpgrade kernel-rt-coreUpgrade kernel-rt-modulesUpgrade kernel-rt-debug-modules-extraUpgrade kernel-zfcpdump-modules-extraUpgrade kernel-headersUpgrade kernel-rt-debug-modulesUpgrade kernel-coreUpgrade kernel-docUpgrade kernel-debug-modules-extraUpgrade kernel-modulesUpgrade kernel-debug-develUpgrade kernel-rt-debug-develUpgrade kernel-rt-debug-kvmUpgrade kernel-modules-extraUpgrade kernel-debugUpgrade kernel-debug-coreUpgrade kernel-abi-stablelistsUpgrade kernel-rt-kvmUpgrade kernel-rtUpgrade kernel-tools-libsUpgrade kernel-zfcpdump-coreUpgrade kernel-rt-debugUpgrade kernel-debug-modulesUpgrade kernelUpgrade kernel-develUpgrade kernel-cross-headersUpgrade kernel-toolsUpgrade kernel-rt-develUpgrade python3-perfUpgrade kernel-rt-modules-extraUpgrade kernel-zfcpdump-modulesUpgrade kernel-tools-libs-develUpgrade bpftoolUpgrade kernel-rt-debug-core | Aug 12, 2024 | May 1, 2024 |
| Debian | — | Upgrade linuxNo solution exists | May 15, 2025 | May 1, 2024 |
| Huawei Euleros 2_0_sp10 | — | Upgrade kernelUpgrade python3-perfUpgrade kernel-abi-stablelistsUpgrade kernel-toolsUpgrade kernel-tools-libs | Jul 16, 2024 | May 1, 2024 |
| Huawei Euleros 2_0_sp11 | — | Upgrade kernelUpgrade python3-perfUpgrade bpftoolUpgrade kernel-abi-stablelistsUpgrade kernel-toolsUpgrade kernel-tools-libs | Oct 8, 2024 | May 1, 2024 |
| Huawei Euleros 2_0_sp12 | — | Upgrade kernelUpgrade python3-perfUpgrade kernel-abi-stablelistsUpgrade kernel-tools-libsUpgrade bpftoolUpgrade kernel-tools | Oct 8, 2024 | May 1, 2024 |
| Huawei Euleros 2_0_sp9 | — | Upgrade kernel-toolsUpgrade kernel-tools-libsUpgrade kernelUpgrade python3-perf | Jul 17, 2024 | May 1, 2024 |
| Oracle_linux | — | Upgrade kernel | Aug 16, 2024 | May 1, 2024 |
| Redhat_linux | — | Upgrade kernel-rtNo solution existsUpgrade kernel | Aug 12, 2024 | May 1, 2024 |
| Rocky_linux | — | Upgrade kernel-debug-coreUpgrade kernel-rt-debug-debuginfoUpgrade kernel-rt-debuginfo-common-x86_64Upgrade kernel-rt-debug-coreUpgrade perfUpgrade python3-perfUpgrade python3-perf-debuginfoUpgrade kernel-rt-debugUpgrade kernel-rt-develUpgrade kernel-coreUpgrade kernel-debugUpgrade kernel-debug-debuginfoUpgrade kernel-rt-debug-modulesUpgrade kernel-debug-develUpgrade kernel-debuginfoUpgrade kernel-modulesUpgrade kernel-develUpgrade kernel-tools-libsUpgrade kernel-tools-debuginfoUpgrade bpftool-debuginfoUpgrade kernel-rt-modules-extraUpgrade kernel-modules-extraUpgrade kernel-rt-coreUpgrade kernel-rt-kvmUpgrade kernel-cross-headersUpgrade kernel-debug-modulesUpgrade bpftoolUpgrade perf-debuginfoUpgrade kernelUpgrade kernel-rt-debuginfoUpgrade kernel-rt-debug-develUpgrade kernel-tools-libs-develUpgrade kernel-rt-debug-kvmUpgrade kernel-debug-modules-extraUpgrade kernel-toolsUpgrade kernel-rt-modulesUpgrade kernel-rt-debug-modules-extraUpgrade kernel-debuginfo-common-x86_64Upgrade kernel-headersUpgrade kernel-rt | Aug 22, 2024 | May 1, 2024 |
| Suse | — | Upgrade kernel-source-rtUpgrade kernel-rt-optionalUpgrade kernel-sourceUpgrade kernel-default-vdsoUpgrade kernel-syms-azureUpgrade gfs2-kmp-azureUpgrade dtb-marvellUpgrade kernel-source-azureUpgrade kernel-obs-buildUpgrade dtb-broadcomUpgrade kernel-rt_debugUpgrade kernel-source-vanillaUpgrade dlm-kmp-64kbUpgrade reiserfs-kmp-64kbUpgrade kernel-debug-develUpgrade kernel-64kbUpgrade dtb-lgUpgrade kernel-rt-extraUpgrade kernel-azure-extraUpgrade dtb-caviumUpgrade kernel-kvmsmall-develUpgrade kernel-debug-vdsoUpgrade kernel-rt-vdsoUpgrade kselftests-kmp-64kbUpgrade kernel-azure-optionalUpgrade kselftests-kmp-azureUpgrade dtb-renesasUpgrade kernel-azure-develUpgrade cluster-md-kmp-azureUpgrade dtb-amdUpgrade dtb-appleUpgrade kernel-docs-htmlUpgrade dtb-socionextUpgrade dtb-freescaleUpgrade dtb-alteraUpgrade kernel-default-manUpgrade kernel-64kb-optionalUpgrade cluster-md-kmp-64kbUpgrade kernel-kvmsmall-livepatch-develUpgrade dtb-amazonUpgrade kernel-azure-vdsoUpgrade ocfs2-kmp-64kbUpgrade ocfs2-kmp-defaultUpgrade gfs2-kmp-defaultUpgrade dtb-sprdUpgrade kernel-default-develUpgrade kernel-azureUpgrade kernel-rt_debug-livepatch-develUpgrade dtb-allwinnerUpgrade kernel-devel-azureUpgrade kernel-kvmsmall-vdsoUpgrade kernel-rt_debug-develUpgrade kernel-64kb-extraUpgrade kernel-default-livepatchUpgrade dtb-exynosUpgrade reiserfs-kmp-rtUpgrade kernel-debug-livepatch-develUpgrade kernel-default-extraUpgrade dtb-qcomUpgrade kernel-default-base-rebuildUpgrade kernel-default-optionalUpgrade kernel-defaultUpgrade dtb-rockchipUpgrade kselftests-kmp-rtUpgrade kernel-macrosUpgrade kernel-64kb-livepatch-develUpgrade cluster-md-kmp-defaultUpgrade reiserfs-kmp-azureUpgrade kernel-azure-livepatch-develUpgrade dtb-nvidiaUpgrade dtb-armUpgrade kernel-default-baseUpgrade kernel-develUpgrade dlm-kmp-defaultUpgrade kernel-symsUpgrade kselftests-kmp-defaultUpgrade kernel-zfcpdumpUpgrade kernel-rt-livepatch-develUpgrade dtb-mediatekUpgrade gfs2-kmp-rtUpgrade dlm-kmp-azureUpgrade kernel-syms-rtUpgrade kernel-rt-livepatchUpgrade kernel-devel-rtUpgrade kernel-rt-develUpgrade kernel-kvmsmallUpgrade kernel-debugUpgrade dtb-amlogicUpgrade kernel-docsUpgrade kernel-64kb-develUpgrade dlm-kmp-rtUpgrade gfs2-kmp-64kbUpgrade dtb-hisiliconUpgrade kernel-rtUpgrade kernel-rt_debug-vdsoUpgrade ocfs2-kmp-rtUpgrade dtb-apmUpgrade cluster-md-kmp-rtUpgrade reiserfs-kmp-defaultUpgrade ocfs2-kmp-azureUpgrade kernel-obs-qaUpgrade kernel-default-livepatch-develUpgrade dtb-xilinx | Dec 5, 2025 | Sep 10, 2024 |
| Ubuntu | — | Upgrade linux-image-generic-64kUpgrade linux-image-genericUpgrade linux-image-6.8.0-1007-raspiUpgrade linux-image-intelUpgrade linux-image-6.8.0-1010-gcpUpgrade linux-image-oem-24.04Upgrade linux-image-6.8.0-1010-azureUpgrade linux-image-6.8.0-1009-nvidiaUpgrade linux-image-6.8.0-38-lowlatency-64kUpgrade linux-image-gkeUpgrade linux-image-6.8.0-1008-oracle-64kUpgrade linux-image-6.8.0-38-lowlatencyUpgrade linux-image-raspiUpgrade linux-image-lowlatency-64kUpgrade linux-image-azureUpgrade linux-image-6.8.0-1009-nvidia-64kUpgrade linux-image-ibmUpgrade linux-image-generic-64k-hwe-24.04Upgrade linux-image-oem-24.04aUpgrade linux-image-lowlatencyUpgrade linux-image-6.8.0-1010-azure-fdeUpgrade linux-image-6.8.0-38-generic-64kUpgrade linux-image-ibm-classicUpgrade linux-image-6.8.0-1011-awsUpgrade linux-image-gcpUpgrade linux-image-awsUpgrade linux-image-generic-lpaeUpgrade linux-image-kvmUpgrade linux-image-azure-fdeUpgrade linux-image-ibm-lts-24.04Upgrade linux-image-generic-hwe-24.04Upgrade linux-image-virtual-hwe-24.04Upgrade linux-image-nvidiaUpgrade linux-image-oracleUpgrade linux-image-6.8.0-38-genericUpgrade linux-image-virtualUpgrade linux-image-6.8.0-1008-oemUpgrade linux-image-6.8.0-1007-intelUpgrade linux-image-nvidia-64kUpgrade linux-image-6.8.0-1008-oracleUpgrade linux-image-6.8.0-1008-ibmUpgrade linux-image-6.8.0-1006-gkeUpgrade linux-image-oracle-64k | 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