Description
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
...
Affected products
| Vendor | Product | Affected | Fixed |
|---|---|---|---|
| Linux | Linux | 6.1.80 – < 6.1.132, 6.6.19 – < 6.6.84, 6.7.7 – < 6.8, 6.8 | 6.1.132 |
Fixed in Linux distributions
Distributions backport fixes, so the version that fixes this vulnerability differs per release — upgrade to at least the version shown. From the distributions' security trackers and advisories.
Debian
Security tracker ↗| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| Debian 14 | linux | 6.12.20-1 | — |
| Debian 13 | linux | 6.12.20-1 | — |
| Debian 12 | linux | 6.1.133-1 | DSA-5900-1 |
| Debian 11 | linux-6.1 | 6.1.137-1~deb11u1 | DLA-4193-1 |
Ubuntu
Security tracker ↗| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| Ubuntu 24.04 LTS | linux | 6.8.0-84.84 | USN-7764-1 |
| Ubuntu 24.04 LTS | linux-aws | 6.8.0-1039.41 | USN-7764-1 |
| Ubuntu 24.04 LTS | linux-azure | 6.8.0-1038.44 | USN-7802-1 |
| Ubuntu 24.04 LTS | linux-azure-6.11 | 6.11.0-1018.18~24.04.1 | USN-7628-1 |
| Ubuntu 24.04 LTS | linux-azure-nvidia | 6.8.0-1025.27 | USN-7809-1 |
| Ubuntu 24.04 LTS | linux-gcp | 6.8.0-1040.42 | USN-7764-1 |
| Ubuntu 24.04 LTS | linux-gcp-6.11 | 6.11.0-1016.16~24.04.1 | USN-7605-1 |
| Ubuntu 24.04 LTS | linux-gke | 6.8.0-1036.40 | USN-7764-1 |
| Ubuntu 24.04 LTS | linux-gkeop | 6.8.0-1023.25 | USN-7764-1 |
| Ubuntu 24.04 LTS | linux-hwe-6.11 | 6.11.0-28.28~24.04.1 | USN-7605-1 |
| Ubuntu 24.04 LTS | linux-ibm | 6.8.0-1037.37 | USN-7779-1 |
| Ubuntu 24.04 LTS | linux-intel +4 | No fix yet | — |
| Ubuntu 24.04 LTS | linux-lowlatency | 6.8.0-84.84.1 | USN-7764-1 |
| Ubuntu 24.04 LTS | linux-lowlatency-hwe-6.11 | 6.11.0-1015.16~24.04.2 | USN-7605-2 |
| Ubuntu 24.04 LTS | linux-nvidia | 6.8.0-1039.42 | USN-7765-1 |
| Ubuntu 24.04 LTS | linux-nvidia-6.11 | 6.11.0-1012.12 | — |
| Ubuntu 24.04 LTS | linux-nvidia-lowlatency | 6.8.0-1039.42.1 | USN-7765-1 |
| Ubuntu 24.04 LTS | linux-nvidia-tegra | 6.8.0-1010.10 | — |
| Ubuntu 24.04 LTS | linux-oem-6.11 | 6.11.0-1024.24 | USN-7606-1 |
| Ubuntu 24.04 LTS | linux-oracle | 6.8.0-1037.38 | USN-7801-2 |
| Ubuntu 24.04 LTS | linux-raspi | 6.8.0-1039.43 | USN-7790-1 |
| Ubuntu 24.04 LTS | linux-xilinx | 6.8.0-1018.19 | — |
| Ubuntu 22.04 LTS | linux-aws-6.8 | 6.8.0-1039.41~22.04.1 | USN-7766-1 |
| Ubuntu 22.04 LTS | linux-azure-6.8 | 6.8.0-1036.42~22.04.1 | USN-7802-1 |
| Ubuntu 22.04 LTS | linux-gcp-6.8 | 6.8.0-1040.42~22.04.1 | USN-7766-1 |
| Ubuntu 22.04 LTS | linux-hwe-6.8 | 6.8.0-85.85~22.04.1 | USN-7801-1, USN-7764-2 |
| Ubuntu 22.04 LTS | linux-ibm-6.8 | 6.8.0-1037.37~22.04.1 | USN-7779-1 |
| Ubuntu 22.04 LTS | linux-lowlatency-hwe-6.8 | 6.8.0-84.84.1~22.04.1 | USN-7764-1 |
| Ubuntu 22.04 LTS | linux-nvidia-6.8 | 6.8.0-1039.42~22.04.1 | USN-7765-1 |
| Ubuntu 22.04 LTS | linux-oracle-6.8 | 6.8.0-1037.38~22.04.1 | USN-7801-3 |
| Ubuntu 22.04 LTS | linux-riscv +32 | No fix yet | — |
| Ubuntu 22.04 LTS | linux-riscv-6.8 | 6.8.0-84.84~22.04.1 | — |
| Ubuntu 20.04 LTS | linux-gke +28 | No fix yet | — |
| Ubuntu 18.04 LTS | linux-gcp +14 | No fix yet | — |
| Ubuntu 16.04 LTS | linux-hwe-edge | No fix yet | — |
Show 3 more (older releases, extended support, other products)Fewer releases
| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| Ubuntu Pro Realtime 24.04 LTS | linux-raspi-realtime | 6.8.0-2030.31 | USN-7800-1 |
| Ubuntu Pro Realtime 24.04 LTS | linux-realtime | 6.8.1-1034.35 | USN-7767-1 |
| Ubuntu Pro Realtime 22.04 LTS | linux-realtime-6.8 | 6.8.1-1034.35~22.04.1 | USN-7767-2 |
| Ubuntu Pro FIPS-updates 24.04 LTS | linux-aws-fips | 6.8.0-1039.41+fips1 | — |
| Ubuntu Pro FIPS-updates 24.04 LTS | linux-azure-fips | 6.8.0-1040.46+fips1 | — |
| Ubuntu Pro FIPS-updates 24.04 LTS | linux-fips | 6.8.0-84.84+fips1 | — |
| Ubuntu Pro FIPS-updates 24.04 LTS | linux-gcp-fips | 6.8.0-1040.42+fips1 | — |
Amazon Linux
| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| Amazon Linux 2023 | kernel-livepatch-6.1.132-147.221 | 1.0-0.amzn2023 | ALAS2023-2025-959 |
| Amazon Linux 2023 | perf +14 | 6.1.132-147.221.amzn2023 | ALAS2023-2025-959 |
Oracle Linux
| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| Oracle Linux 9 | kernel-uek +34 | 6.12.0-101.33.4.3.el10uek | ELSA-2025-20530, ELSA-2025-20480 |
Advisories 24
- WID-SEC-2025-0683 Linux Kernel: Mehrere Schwachstellen BSI CERT-Bund (WID) · Nov 10, 2026
- USN-7802-1 linux-azure, linux-azure-6.8 vulnerabilities Ubuntu Security Notices (USN) · Nov 3, 2026
- USN-7809-1 linux-azure-nvidia vulnerabilities Ubuntu Security Notices (USN) · Nov 3, 2026
- USN-7801-1 linux-hwe-6.8 vulnerabilities Ubuntu Security Notices (USN) · Nov 3, 2026
- USN-7801-3 linux-oracle-6.8 vulnerabilities Ubuntu Security Notices (USN) · Nov 3, 2026
- USN-7800-1 linux-raspi-realtime vulnerabilities Ubuntu Security Notices (USN) · Nov 3, 2026
- USN-7801-2 linux-oracle vulnerabilities Ubuntu Security Notices (USN) · Nov 3, 2026
- USN-7628-1 linux-azure, linux-azure-6.11 vulnerabilities Ubuntu Security Notices (USN) · Nov 3, 2026
- USN-7605-1 linux, linux-aws, linux-gcp, linux-gcp-6.11, linux-hwe-6.11, linux-oracle, linux-raspi, linux-realtime vulnerabilities Ubuntu Security Notices (USN) · Nov 3, 2026
- USN-7605-2 linux-lowlatency, linux-lowlatency-hwe-6.11 vulnerabilities Ubuntu Security Notices (USN) · Nov 3, 2026
- USN-7606-1 linux-oem-6.11 vulnerabilities Ubuntu Security Notices (USN) · Nov 3, 2026
- USN-7764-1 linux, linux-aws, linux-gcp, linux-gke, linux-gkeop, linux-lowlatency, linux-lowlatency-hwe-6.8 vulnerabilities Ubuntu Security Notices (USN) · Oct 30, 2026
- USN-7765-1 linux-nvidia, linux-nvidia-6.8, linux-nvidia-lowlatency vulnerabilities Ubuntu Security Notices (USN) · Oct 30, 2026
- USN-7766-1 linux-aws-6.8, linux-gcp-6.8 vulnerabilities Ubuntu Security Notices (USN) · Oct 30, 2026
- USN-7767-2 linux-realtime-6.8 vulnerabilities Ubuntu Security Notices (USN) · Oct 30, 2026
- USN-7767-1 linux-realtime vulnerabilities Ubuntu Security Notices (USN) · Oct 30, 2026
- USN-7779-1 linux-ibm, linux-ibm-6.8 vulnerabilities Ubuntu Security Notices (USN) · Oct 30, 2026
- USN-7790-1 linux-raspi vulnerabilities Ubuntu Security Notices (USN) · Oct 30, 2026
- USN-7764-2 linux-hwe-6.8 vulnerabilities Ubuntu Security Notices (USN) · Jun 3, 2026
- DSA-5900-1 linux - security update Debian Security (DSA / DLA) · Mar 9, 2026
- DLA-4193-1 linux-6.1 - security update Debian Security (DSA / DLA) · Mar 9, 2026
- ELSA-2025-20530 Important: Unbreakable Enterprise kernel security update (Oracle Linux 9) Oracle Linux Security Advisories (ELSA) · Aug 18, 2025
- ALAS2023-2025-959 Important: kernel security update (Amazon Linux 2023) Amazon Linux Security Center (ALAS) · Jul 29, 2025
- ELSA-2025-20480 Important: Unbreakable Enterprise kernel security update (Oracle Linux 9) Oracle Linux Security Advisories (ELSA) · Jul 17, 2025
References
- https://git.kernel.org/stable/c/af757f5ee3f754c5dceefb05c12ff37cb46fc682
- https://git.kernel.org/stable/c/1f7d051814e7a0cb1f0717ed5527c1059992129d
- https://git.kernel.org/stable/c/a597d4b75669ec82c72cbee9fe75a15d04b35b2b
- https://git.kernel.org/stable/c/f9ed3fb50b872bd78bcb01f25087f9e4e25085d8
- https://git.kernel.org/stable/c/62531a1effa87bdab12d5104015af72e60d926ff