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