LiveActive security incident?Get immediate response
CVE Record

CVE-2025-21986: net: switchdev: Convert blocking notification chain to a raw one

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 ...

UnknownCVSS not scoredNot KEV-listedUpdated
Glexia's TakeAutomated analysisunknown

Security readout for executives and security teams

Plain-English summary

CVE-2025-21986 is a Linux kernel networking bug in switchdev notification handling. Under specific bridge and switchdev event paths, recursive notifications can trigger recursive locking warnings and a possible deadlock. The sources do not provide CVSS, confirmed exploitation, or a broad impact statement.

Executive priority

Treat this as a targeted kernel maintenance item. Prioritize network appliances, virtualization hosts, and systems using Linux bridge with switchdev offload. There is no sourced evidence of active exploitation, so emergency response is not supported by the bundle.

Technical view

The issue is in the Linux kernel switchdev blocking notifier chain. Recursive switchdev notifications during bridge port unoffload handling can reacquire the same read-write semaphore. The fix converts the chain to a raw notifier chain protected by the RTNL mutex and adds an assertion for future correctness.

Likely exposure

Exposure is most relevant to Linux systems using bridge networking with switchdev or hardware offload paths. General Linux servers without switchdev-related bridge offload behavior may be less likely to encounter the vulnerable path, but the bundle does not quantify reachability.

Exploitation context

The bundle cites lockdep warnings and a possible deadlock scenario, not active exploitation. KEV status is false, and no cited source claims public exploitation, exploit maturity, or attacker requirements.

Researcher notes

The evidence points to concurrency correctness in a specific switchdev notifier path. The main fix changes notifier chain locking semantics under RTNL. Impact, attacker control, and reliable security consequences are not established in the provided sources.

Mitigation direction

  • Apply kernel updates that include the referenced stable fixes.
  • Use distribution advisories, such as Debian LTS, to identify patched packages.
  • Prioritize systems using bridge networking with switchdev or hardware offload.
  • Check vendor guidance before applying any workaround not named in advisories.

Validation and detection

  • Inventory Linux kernel versions and distribution package levels.
  • Identify systems using bridge networking with switchdev or hardware offload.
  • Compare installed kernels against vendor fixed-version advisories.
  • Review kernel logs for switchdev or bridge-related lockdep warnings.
Prepared
Confidence
medium
Sources
8

Generated from the cited source records. This long-tail analysis has not been individually reviewed by a named human.

Potential ATT&CK relevance

Conservative CVE-to-ATT&CK context

These mappings and lookup hints may be relevant to the vulnerability behavior, CWE, affected product, or exposure path. Glexia-inferred context is not an official MITRE, ATT&CK, CWE, or CVE Program mapping.

ATT&CK lookup starting points

Use these exact CWE pages and searches to review the Glexia ATT&CK library from this CVE's weakness and description context.

cve · low confidence lookup

CVE-2025-21986 mapping review

Open the CVE-to-ATT&CK bridge for reviewed, inferred, or future official mappings tied to this CVE.

Open ATT&CK lookup
Vulnerability profileCVE Program record
Severity
Unknown
CVSS
Not scored
Known Exploited
No
Published
Official CVE source material

CNA and ADP enrichment extracted from CVE v5

These fields come from the CVE record and ADP containers, not from Glexia's Take. They preserve time-varying source decisions such as CISA SSVC, KEV status, CVSS metrics, and provider references.

0CVSS vectors
3Timeline events
1ADP providers
7Source links

Vulnerability timeline

Timeline events are normalized from CVE metadata, CNA source timelines, ADP timelines, and KEV metadata when present.

  1. CVE reservedCVE Program

    The CVE ID was reserved by the assigning CNA.

  2. CVE publishedCVE Program

    The CVE record was published.

  3. CVE updatedCVE Program

    The CVE record metadata indicates this as the latest update time.

ADP provider summaries

CVECVE Program Container
Affected products

Products and packages named in the record

VendorProductVersion / packageStatus
LinuxLinux91ac2c79e896b28a4a3a262384689ee6dfeaf083, a83856bd0c240267a86ce3388f3437d6ba5ac5ca, f7a70d650b0b6b0134ccba763d672c8439d9f09b, f7a70d650b0b6b0134ccba763d672c8439d9f09b, f7a70d650b0b6b0134ccba763d672c8439d9f09b, a7589eca09929c3cc2a62950ef7f40bcc58afe3a, 6.1.80, 6.6.19, 6.7.7unaffected
LinuxLinux6.8, 0, 6.1.132, 6.6.84, 6.12.20, 6.13.8, 6.14affected
Weakness

CWE details

No CWE listed

CWE links open Glexia weakness intelligence pages with official CWE context, developer remediation guidance, and related CVE mappings.