In the Linux kernel, the following vulnerability has been resolved:
net: switchdev: Convert blocking notification chain to a raw one
A blocking notification chain uses a read-write semaphore to protect the integrity of the chain. The semaphore is acquired for writing when adding / removing notifiers to / from the chain and acquired for reading when traversing the chain and informing notifiers about an event.
In case of the blocking switchdev notification chain, recursive notifications are possible which leads to the semaphore being acquired twice for reading and to lockdep warnings being generated [1].
Specifically, this can happen when the bridge driver processes a SWITCHDEV_BRPORT_UNOFFLOADED event which causes it to emit notifications about deferred events when calling switchdev_deferred_process().
Fix this by converting the notification chain to a raw notification chain in a similar fashion to the netdev notification chain. Protect the chain using the RTNL mutex by acquiring it when modifying the chain. Events are always informed under the RTNL mutex, but add an assertion in call_switchdev_blocking_notifiers() to make sure this is not violated in the future.
Maintain the "blocking" prefix as events are always emitted from process context and listeners are allowed to block.
[1]: WARNING: possible recursive locking detected 6.14.0-rc4-custom-g079270089484 #1 Not tainted -------------------------------------------- ip/52731 is trying to acquire lock: ffffffff850918d8 ((switchdev_blocking_notif_chain).rwsem){++++}-{4:4}, at: blocking_notifier_call_chain+0x58/0xa0
but task is already holding lock: ffffffff850918d8 ((switchdev_blocking_notif_chain).rwsem){++++}-{4:4}, at: blocking_notifier_call_chain+0x58/0xa0
other info that might help us debug this: Possible unsafe locking scenario: CPU0 ---- lock((switchdev_blocking_notif_chain).rwsem); lock((switchdev_blocking_notif_chain).rwsem);
*** DEADLOCK *** May be due to missing lock nesting notation 3 locks held by ip/52731: #0: ffffffff84f795b0 (rtnl_mutex){+.+.}-{4:4}, at: rtnl_newlink+0x727/0x1dc0 #1: ffffffff8731f628 (&net->rtnl_mutex){+.+.}-{4:4}, at: rtnl_newlink+0x790/0x1dc0 #2: ffffffff850918d8 ((switchdev_blocking_notif_chain).rwsem){++++}-{4:4}, at: blocking_notifier_call_chain+0x58/0xa0
stack backtrace: ... ? __pfx_down_read+0x10/0x10 ? __pfx_mark_lock+0x10/0x10 ? __pfx_switchdev_port_attr_set_deferred+0x10/0x10 blocking_notifier_call_chain+0x58/0xa0 switchdev_port_attr_notify.constprop.0+0xb3/0x1b0 ? __pfx_switchdev_port_attr_notify.constprop.0+0x10/0x10 ? mark_held_locks+0x94/0xe0 ? switchdev_deferred_process+0x11a/0x340 switchdev_port_attr_set_deferred+0x27/0xd0 switchdev_deferred_process+0x164/0x340 br_switchdev_port_unoffload+0xc8/0x100 [bridge] br_switchdev_blocking_event+0x29f/0x580 [bridge] notifier_call_chain+0xa2/0x440 blocking_notifier_call_chain+0x6e/0xa0 switchdev_bridge_port_unoffload+0xde/0x1a0 ...
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 |
|---|---|---|---|---|
| Amazon_linux_2023 | — | Upgrade kernel-livepatch-6.1.132-147.221Upgrade bpftool-debuginfoUpgrade kernel-debuginfoUpgrade kernel-libbpf-develUpgrade kernel-headersUpgrade kernel-libbpf-staticUpgrade python3-perf-debuginfoUpgrade kernel-modules-extra-commonUpgrade kernel-debuginfo-common-x86_64Upgrade bpftoolUpgrade kernelUpgrade kernel-tools-debuginfoUpgrade kernel-debuginfo-common-aarch64Upgrade kernel-toolsUpgrade kernel-modules-extraUpgrade python3-perfUpgrade perf-debuginfoUpgrade perfUpgrade kernel-develUpgrade kernel-tools-develUpgrade kernel-libbpf-debuginfoUpgrade kernel-libbpf | Jun 11, 2025 | Apr 1, 2025 |
| Debian | — | Upgrade linuxUpgrade linux-6.1 | Apr 14, 2025 | Apr 1, 2025 |
| Redhat_linux | — | No solution exists | Jul 9, 2025 | Apr 1, 2025 |
| Suse | — | Upgrade kernel-azure-vdsoUpgrade kernel-zfcpdumpUpgrade kernel-docs-htmlUpgrade kernel-default-livepatchUpgrade kernel-devel-azureUpgrade kernel-64kbUpgrade kernel-kvmsmall-vdsoUpgrade kernel-obs-qaUpgrade kernel-docsUpgrade kernel-azure-develUpgrade kernel-macrosUpgrade kernel-default-develUpgrade kernel-kvmsmall-develUpgrade kernel-kvmsmallUpgrade kernel-azureUpgrade kernel-azure-extraUpgrade kernel-default-extraUpgrade kernel-defaultUpgrade kernel-default-vdsoUpgrade kernel-source-vanillaUpgrade kernel-symsUpgrade kernel-64kb-extraUpgrade kernel-source-azureUpgrade kernel-sourceUpgrade kernel-64kb-develUpgrade kernel-devel | Dec 5, 2025 | Dec 5, 2025 |
| Ubuntu | — | Upgrade linux-image-lowlatency-64k-hwe-24.04Upgrade linux-image-6.11.0-28-generic-64kUpgrade linux-image-gcp-6.8Upgrade linux-image-6.8.0-1038-azureUpgrade linux-image-azure-fde-6.8Upgrade linux-image-lowlatencyUpgrade linux-image-6.8.0-1040-gcpUpgrade linux-image-6.8.0-1039-nvidiaUpgrade linux-image-oracle-lts-24.04Upgrade linux-image-ibm-lts-24.04Upgrade linux-image-lowlatency-64k-6.8Upgrade linux-image-oem-24.04bUpgrade linux-image-generic-hwe-22.04Upgrade linux-image-6.8.0-1037-oracleUpgrade linux-image-lowlatency-64k-hwe-22.04Upgrade linux-image-6.8.0-84-genericUpgrade linux-image-gkeUpgrade linux-image-generic-lpaeUpgrade linux-image-azure-6.8Upgrade linux-image-6.8.0-84-lowlatency-64kUpgrade linux-image-6.8.0-85-genericUpgrade linux-image-aws-64k-6.8Upgrade linux-image-azure-fde-edgeUpgrade linux-image-virtualUpgrade linux-image-oem-22.04Upgrade linux-image-6.11.0-1016-gcp-64kUpgrade linux-image-lowlatency-hwe-22.04Upgrade linux-image-oem-22.04bUpgrade linux-image-6.8.0-85-generic-64kUpgrade linux-image-azure-fde-6.11Upgrade linux-image-aws-64kUpgrade linux-image-generic-6.8Upgrade linux-image-6.8.1-1034-realtimeUpgrade linux-image-generic-64k-6.8Upgrade linux-image-6.8.0-2031-raspi-realtimeUpgrade linux-image-ibm-6.8Upgrade linux-image-6.11.0-1011-realtimeUpgrade linux-image-lowlatency-6.11Upgrade linux-image-azure-lts-24.04Upgrade linux-image-ibm-classicUpgrade linux-image-azure-6.11Upgrade linux-image-azure-nvidiaUpgrade linux-image-gkeop-6.8Upgrade linux-image-oracle-64k-6.8Upgrade linux-image-6.11.0-28-genericUpgrade linux-image-nvidiaUpgrade linux-image-awsUpgrade linux-image-6.8.0-1025-azure-nvidiaUpgrade linux-image-generic-64k-hwe-22.04Upgrade linux-image-generic-64k-hwe-24.04Upgrade linux-image-oem-22.04aUpgrade linux-image-raspi-realtime-6.8Upgrade linux-image-6.11.0-1018-azure-fdeUpgrade linux-image-azure-nvidia-6.8Upgrade linux-image-6.11.0-1018-azureUpgrade linux-image-6.8.0-1036-azureUpgrade linux-image-ibmUpgrade linux-image-nvidia-lowlatency-64kUpgrade linux-image-virtual-hwe-24.04Upgrade linux-image-raspi-realtimeUpgrade linux-image-6.8.0-1036-gke-64kUpgrade linux-image-6.8.0-84-generic-64kUpgrade linux-image-6.11.0-1017-oracle-64kUpgrade linux-image-6.8.0-1039-awsUpgrade linux-image-nvidia-lowlatency-6.8Upgrade linux-image-genericUpgrade linux-image-nvidia-64k-hwe-22.04Upgrade linux-image-realtime-hwe-22.04Upgrade linux-image-gcp-64k-lts-24.04Upgrade linux-image-nvidia-64k-6.8Upgrade linux-image-6.8.0-1037-ibmUpgrade linux-image-6.11.0-1015-lowlatency-64kUpgrade linux-image-lowlatency-64kUpgrade linux-image-oracle-64kUpgrade linux-image-oracleUpgrade linux-image-6.8.0-1039-nvidia-lowlatencyUpgrade linux-image-lowlatency-hwe-24.04Upgrade linux-image-gcpUpgrade linux-image-6.11.0-1015-lowlatencyUpgrade linux-image-raspi-6.8Upgrade linux-image-azure-nvidia-lts-24.04Upgrade linux-image-6.8.0-1039-nvidia-64kUpgrade linux-image-virtual-6.8Upgrade linux-image-azureUpgrade linux-image-6.8.0-1038-azure-fdeUpgrade linux-image-6.11.0-1024-oemUpgrade linux-image-6.11.0-1015-awsUpgrade linux-image-6.8.0-1040-gcp-64kUpgrade linux-image-generic-64kUpgrade linux-image-gcp-lts-24.04Upgrade linux-image-6.8.0-1036-gkeUpgrade linux-image-raspiUpgrade linux-image-nvidia-hwe-22.04Upgrade linux-image-realtimeUpgrade linux-image-aws-lts-24.04Upgrade linux-image-6.8.0-1039-raspiUpgrade linux-image-gcp-64k-6.8Upgrade linux-image-nvidia-64kUpgrade linux-image-gcp-64kUpgrade linux-image-aws-6.8Upgrade linux-image-lowlatency-6.8Upgrade linux-image-gkeopUpgrade linux-image-gke-64kUpgrade linux-image-nvidia-lowlatencyUpgrade linux-image-aws-64k-lts-24.04Upgrade linux-image-oracle-6.8Upgrade linux-image-realtime-6.8.1Upgrade linux-image-6.8.0-1036-azure-fdeUpgrade linux-image-virtual-hwe-22.04Upgrade linux-image-6.8.0-1023-gkeopUpgrade linux-image-oem-22.04dUpgrade linux-image-lowlatency-64k-6.11Upgrade linux-image-gke-6.8Upgrade linux-image-azure-fde-lts-24.04Upgrade linux-image-generic-hwe-24.04Upgrade linux-image-6.8.0-1037-oracle-64kUpgrade linux-image-6.8.0-1039-nvidia-lowlatency-64kUpgrade linux-image-oem-22.04cUpgrade linux-image-nvidia-lowlatency-64k-6.8Upgrade linux-image-6.8.0-1039-aws-64kUpgrade linux-image-oracle-64k-lts-24.04Upgrade linux-image-gke-64k-6.8Upgrade linux-image-azure-fdeUpgrade linux-image-6.8.0-84-lowlatencyUpgrade linux-image-nvidia-6.8Upgrade linux-image-kvmUpgrade linux-image-6.11.0-1014-raspiUpgrade linux-image-6.11.0-1017-oracleUpgrade linux-image-6.11.0-1016-gcp | Jun 26, 2025 | Apr 1, 2025 |
| Vmware Photon_os | — | Use 'tdnf update' to upgrade all packages to the latest version. | Oct 17, 2025 | Apr 1, 2025 |
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