CVE-2025-21823: batman-adv: Drop unmanaged ELP metric worker
In the Linux kernel, the following vulnerability has been resolved:
batman-adv: Drop unmanaged ELP metric worker
The ELP worker needs to calculate new metric values for all neighbors
"reachable" over an interface. Some of the used metric sources require
locks which might need to sleep. This sleep is incompatible with the RCU
list iterator used for the recorded neighbors. The initial approach to work
around of this problem was to queue another work item per neighbor and then
run this in a new context.
Even when this solved the RCU vs might_sleep() conflict, it has a major
problems: Nothing was stopping the work item in case it is not needed
anymore - for example because one of the related interfaces was removed or
the batman-adv module was unloaded - resulting in potential invalid memory
accesses.
Directly canceling the metric worker also has various problems:
* cancel_work_sync for a to-be-deactivated interface is called with
rtnl_lock held. But the code in the ELP metric worker also tries to use
rtnl_lock() - which will never return in this case. This also means that
cancel_work_sync would never return because it is waiting for the worker
to finish.
* iterating over the neighbor list for the to-be-deactivated interface is
currently done using the RCU specific methods. Which means that it is
possible to miss items when iterating over it without the associated
spinlock - a behaviour which is acceptable for a periodic metric check
but not for a cleanup routine (which must "stop" all still running
workers)
The better approch is to get rid of the per interface neighbor metric
worker and handle everything in the interface worker. The original problems
are solved by:
* creating a list of neighbors which require new metric information inside
the RCU protected context, gathering the metric according to the new list
outside the RCU protected context
* only use rcu_trylock inside metric gathering code to avoid a deadlock
when the cancel_delayed_work_sync is called in the interface removal code
(which is called with the rtnl_lock held)
Security readout for executives and security teams
Plain-English summary
This Linux kernel issue affects the batman-adv mesh networking component. A background metric worker could keep running after related interfaces are removed or the module is unloaded, creating potential invalid memory access. The public record does not provide CVSS, confirmed impact, or exploitation evidence.
Executive priority
Treat this as a targeted Linux kernel maintenance issue, not an internet-wide emergency based on current evidence. Prioritize patching systems that use batman-adv or receive Debian LTS kernel updates, and rely on vendor advisories for final exposure decisions.
Technical view
The flaw is in batman-adv ELP metric handling. Per-neighbor metric work was queued to avoid sleeping inside an RCU iterator, but unmanaged work items could outlive interfaces or module state. The kernel fix moves metric collection into the interface worker and changes locking behavior to avoid deadlock during interface removal.
Likely exposure
Exposure is most likely on Linux systems using the batman-adv kernel module for mesh networking. The bundle lists Linux kernel versions and stable-branch fixes, plus Debian LTS advisories, but does not identify specific distributions beyond Debian notices.
Exploitation context
CISA KEV status is false in the bundle, and no cited source reports active exploitation. The available description indicates a kernel memory-safety bug triggered around batman-adv interface removal or module unload, but does not provide attacker prerequisites or exploitability details.
Researcher notes
Evidence is limited to the CVE text, upstream stable commits, and Debian LTS announcements. The root issue is lifecycle management of asynchronous ELP metric work combined with RCU and rtnl_lock constraints. Do not assume remote exploitability without additional vendor or researcher analysis.
Mitigation direction
Apply the relevant vendor or distribution kernel update containing the batman-adv fix.
Review Debian LTS advisories if running affected Debian kernel packages.
Check upstream stable commits for the fix appropriate to your kernel branch.
If batman-adv is unnecessary, use vendor-supported configuration to avoid loading it.
Track vendor guidance for any later severity or workaround clarification.
Validation and detection
Inventory Linux hosts and kernel versions against vendor advisories.
Check whether the batman-adv module is present or loaded.
Confirm updated kernels include the referenced stable batman-adv commits.
Prioritize systems using mesh networking or dynamic interface removal.
Monitor kernel logs for batman-adv crashes around interface removal.
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-21823 mapping review
Open the CVE-to-ATT&CK bridge for reviewed, inferred, or future official mappings tied to this CVE.
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
11Source links
Vulnerability timeline
Timeline events are normalized from CVE metadata, CNA source timelines, ADP timelines, and KEV metadata when present.
CVE reservedCVE Program
The CVE ID was reserved by the assigning CNA.
CVE publishedCVE Program
The CVE record was published.
Feb 27, 2025, 20:06 UTC (UTC+00:00)
CVE updatedCVE Program
The CVE record metadata indicates this as the latest update time.