Skip to main content

Linux batman-adv CVE-2026-93203

| EUVDEUVD-2026-82311 HIGH
2026-09-17 Linux GHSA-jrfx-xv62-wfwq
7.1
CVSS 3.1 · Vendor: Linux
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Join target batman-adv mesh (adjacent L2)
  2. Delivery
    Inject CLAIM frames for a contested client
  3. Exploit
    Race parallel claim-add vs backbone-change on two CPUs
  4. Execution
    Corrupt backbone CRC permanently
  5. Impact
    Degrade bridge-loop-avoidance integrity/availability

Vulnerability Assessment

Exploitation Conditions

Requires the target host to be running the Linux kernel batman-adv module with Bridge Loop Avoidance (BLA) enabled and participating in a mesh where the attacker can send CLAIM frames from a remote backbone gateway on the same L2 mesh (hence AV:A). Exploitation further depends on winning a genuine multi-CPU race between batadv_bla_add_claim()'s 'new claim' creation path and a concurrent 'change backbone' update for the same client address - a non-deterministic timing window that cannot be precisely steered. Limiting factors: batman-adv/BLA is not enabled by default on general-purpose systems, adjacency to the mesh is mandatory (no remote/internet reachability), no authentication bypass or memory-safety primitive is gained, and impact is confined to corrupted backbone CRC state (loop-avoidance integrity/availability) rather than host compromise.

Impact

This is a race-condition data-corruption bug in the Linux kernel's batman-adv bridge loop avoidance (BLA) subsystem, not an information-disclosure or code-execution flaw. The vendor CVSS 3.1 vector CVSS:3.1/AV:A/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:H (7.1) already sets C:N, confirming no confidentiality impact - which directly contradicts the 'Information Disclosure' tag. I partly disagree with the vendor scoring: the flaw is fundamentally a narrow timing window (CPU0 'new claim' path racing CPU1 'change backbone' path on the same client), so AC:L understates the difficulty and should be AC:H; a corrupted, never-recomputed backbone CRC degrades bridge-loop-avoidance correctness rather than crashing the host, so A:H is overstated (closer to A:L/I:L). No EPSS score, no CISA KEV entry, and no public exploit are present in the data - this is 'no public exploit identified at time of analysis.' The realistic priority is LOW: it requires an attacker (or peer) on the same batman-adv mesh emitting CLAIM frames while a local/remote claim add races, a condition that is not attacker-steerable with precision. AV:A is consistent with batman-adv being an L2 mesh protocol where CLAIM frames arrive from adjacent backbone gateways. Bottom line: high raw CVSS driven by A:H, but real-world risk is modest and non-targeted.

Exploit ScenarioDerived

An attacker joined to the same batman-adv mesh network (adjacent/L2) as a target node repeatedly injects CLAIM frames for a client address that is also being claimed locally, hoping to interleave the 'new claim' and 'change backbone' code paths across two CPUs. If the race lands, the backbone CRC becomes permanently wrong and is never recomputed, degrading bridge-loop-avoidance integrity and potentially causing frame handling/loop-detection anomalies. No public proof-of-concept exists, and the timing window is not reliably attacker-controllable.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
Patch available 0.2% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Sep 18, 2026

A race condition in the Linux kernel's batman-adv bridge loop avoidance (BLA) code can corrupt a mesh node's backbone CRC bookkeeping when another device on the same Layer-2 segment feeds CLAIM frames into the mesh. An unauthenticated attacker with Layer-2 adjacency to a node running batman-adv with BLA enabled can trigger the flaw only by winning a narrow, non-deterministic timing window between a concurrent claim-creation path and a backbone-change path for the same client MAC, leaving CRC state inconsistent for two backbone gateways at once. The impact is limited to corrupted loop-avoidance integrity/availability state (no host compromise, no memory-safety primitive, and no confidentiality impact); no public exploit has been identified at time of analysis, and BLA is not enabled by default on general-purpose systems.

RemediationAI

Apply the vendor-released kernel updates that contain the BLA fix: Linux 5.10.270, 5.15.221, 6.1.188, 6.6.157, 6.12.110, 6.18.52, 7.2.6, or 7.3-rc1, or cherry-pick the corresponding stable commits (d5b0e7574da5a485f4dbec32a15911900a4487c2, 8bcfa58c4277bff1882a23547c37ab08aa1de12f, ad982d925f00d860d2467811256ffadcccd9e4a7, e54602d9e38db8573f2097d60c7ea8be0a5af1fa, 1d390db003cbb52cdd86837608bff3794501a5ea, a3e07db74f22a85aeeb51c600da5c98b9cbca11f, 3d4a9ae2c69c0fe4c3c69587288241243bb7a39b, 08645ab95768b88e2ff85a89211994651710465b) from the kernel.org stable trees referenced in the advisory; distribution kernels must be updated through the vendor once the fix is backported. Where immediate patching of a mesh node is impossible, the most effective compensating control is to disable Bridge Loop Avoidance on that node (unload/blacklist the batman-adv module, or turn off BLA in the mesh configuration) - the trade-off is loss of loop prevention when the mesh is bridged to a wired LAN, which can reintroduce broadcast storms and duplicate-frame forwarding, so this should be paired with STP or strict bridge topology hygiene. Because the CRC is never recomputed from stored claims and local claims cannot be repaired by BLA syncs, nodes that already experienced the race may need their BLA state rebuilt (restart the interface/bridge or reload batman-adv) after patching. Limiting which devices can inject CLAIM frames onto the backbone segment (port security, MAC filtering, and keeping untrusted hosts off the meshed L2 domain) reduces exposure since exploitation requires adjacency to the mesh.

Affected VersionsENISA

Linux patch: 6.12.110
Linux patch: 7.2.6
Linux patch: 5.15.221
Linux 23721387c409087fd3b97e274f34d3ddc0970b74 <d5b0e7574da5a485f4dbec32a15911900a4487c2
Linux patch: 5.10.270
Linux patch: 7.3-rc1
Linux patch: 6.1.188
Linux patch: 6.6.157
Linux 23721387c409087fd3b97e274f34d3ddc0970b74 <8bcfa58c4277bff1882a23547c37ab08aa1de12f
Linux 23721387c409087fd3b97e274f34d3ddc0970b74 <ad982d925f00d860d2467811256ffadcccd9e4a7
Linux 23721387c409087fd3b97e274f34d3ddc0970b74 <e54602d9e38db8573f2097d60c7ea8be0a5af1fa
Linux 23721387c409087fd3b97e274f34d3ddc0970b74 <1d390db003cbb52cdd86837608bff3794501a5ea
Linux 23721387c409087fd3b97e274f34d3ddc0970b74 <a3e07db74f22a85aeeb51c600da5c98b9cbca11f
Linux 23721387c409087fd3b97e274f34d3ddc0970b74 <3d4a9ae2c69c0fe4c3c69587288241243bb7a39b
Linux 3.5
Linux patch: 0
Linux 23721387c409087fd3b97e274f34d3ddc0970b74 <08645ab95768b88e2ff85a89211994651710465b
Linux patch: 6.18.52

Affected Packages

euvd linux no fix

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in euvd

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

batman-adv is the in-kernel implementation of the B.A.T.M.A.N. advanced Layer-2 mesh routing protocol; version data in the intelligence feed maps the affected code to the upstream linux:linux CPE (cpe:2.3:a:linux:linux), with the vulnerable logic tracing back to at least Linux 3.5 and present in every stable branch up to the listed fix versions. Bridge Loop Avoidance (BLA) prevents broadcast loops when a batman-adv mesh is bridged into a wired LAN by having each backbone gateway advertise claims for client MAC addresses and maintaining a crc16 checksum over the claimed addresses per backbone gateway. batadv_bla_add_claim() serves two purposes against the same claim hash table: inserting a new claim (adding its crc16 to the owning backbone gateway's CRC) and moving an existing claim to a different backbone gateway (removing the crc16 from the old gateway's CRC and adding it to the new one). Because the new-claim path publishes the claim into the hash before updating the CRC, a second CPU handling a CLAIM frame for the same client from backbone B can observe the half-initialised claim, repoint backbone_gw to B and adjust both CRCs, after which the first CPU unconditionally repoints backbone_gw back to A without compensating B (its remove_crc flag is false on the creation path) and then adds the crc16 to A. The result is a CRC that under-counts the claim on A and over-counts it on B. This corrupted CRC is never recomputed from the stored claims, and for local backbone claims it cannot be repaired by BLA synchronisation messages, so the defect is a persistent state-integrity problem rather than a transient glitch. No CWE was supplied with the record; the underlying class is a concurrency/race condition (CWE-362) on shared claim state. The upstream fix splits the routine into a strict 'new claim' path that always adds the CRC and never rewrites an already-set backbone_gw, and a separate 'update existing claim' path that changes backbone_gw and adjusts both backbone CRCs only when an actual ownership change occurred.

Know when the next one hits your stack

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

Vendor (Linux) PRIMARY 7.1 HIGH
AV:A/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:H
vuln.today AI 4.2 MEDIUM

Adjacent mesh CLAIM frames (AV:A), narrow multi-CPU race (AC:H), unauthenticated auto-processing (PR:N); corruption of BLA CRC gives I:L and modest A:L with no confidentiality impact.

3.1 AV:A/AC:H/PR:N/UI:N/S:U/C:N/I:L/A:L
4.0 AV:A/AC:H/AT:N/PR:N/UI:N/VC:N/VI:L/VA:L/SC:N/SI:N/SA:N
SUSE 5.5 MEDIUM
AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H

Primary rating from Vendor (Linux).

CVSS VectorVendor: Linux

Attack Vector
Adjacent
Attack Complexity
Low
Privileges Required
None
User Interaction
None
Scope
Unchanged
Confidentiality
None
Integrity
Low
Availability
High

Lifecycle Timeline

4
CVSS changed
Sep 18, 2026 - 18:22 NVD
7.1 (HIGH)
Patch available
Sep 17, 2026 - 17:19 EUVD
CVE Published
Sep 17, 2026 - 16:12 cve.org
UNKNOWN (no severity yet)
CVE Published
Sep 17, 2026 - 16:12 cve.org
HIGH 7.1

DescriptionCVE.org

In the Linux kernel, the following vulnerability has been resolved:

batman-adv: bla: avoid CRC corruption due to parallel claim add

batadv_bla_add_claim() is used to add claims and modify the backbone of claims for CLAIM frames from remote backbones and local packets. When it handles a claim, it needs to either

  • add the new claim's CRC to the backbone CRC
  • remove the already existing claim's CRC from the old backbone and add it

to the new backbone

But when the "new" claim code was running in parallel to the "change backbone" code, it can happen that the CRC was invalid because the backbone_gw of the claim was changed twice in the "new" claim code path:

  • CPU0 creates the claim for gateway A and publishes it in the claim

hash. The crc16 of the address has not yet been added to A's crc at this point.

  • CPU1 processes a claim frame of gateway B for the same client, finds

the just published claim, and performs the ownership change: it switches the pointer to B, removes the crc16 from A's crc - which never contained it - and adds it to B's crc.

  • CPU0 continues behind the creation branch, unconditionally switches

the pointer back to A without compensating B's crc (its remove_crc is false for the creation path), and finally adds the crc16 to A's crc

The CRC is then wrong for both:

  • claim belongs to A: but CRC is not part of backbone A's CRC
  • claim doesn't belong to B: CRC is still part of backbone B's CRC

This wrong CRC is never recomputated from the stored claims. For local backbone claims, this can also not recovered using syncs.

To avoid this, split the functionality in clear separate parts:

  • new claim which always adds claim CRC to the backbone CRC (but never

changes the already set backbone_gw of the claim back)

  • update of existing claim which automatically changes the backbone_gw

entry and only updates both backbone CRCs when there was an actual change

Executive ViewAI

Why It Matters

A race condition in the Linux kernel's batman-adv mesh networking module (CVE-2026-93203) can desynchronize loop-avoidance bookkeeping on mesh nodes configured with bridge loop avoidance enabled, potentially degrading or disrupting Layer-2 connectivity in affected mesh segments. The exposure is limited to organizations running batman-adv-based wireless mesh deployments - community networks, industrial/OT backbones, and specialized edge sites where BLA is explicitly turned on - and is not reachable on default general-purpose Linux systems. Because the flaw corrupts network integrity and availability state rather than enabling code execution, data theft, or host compromise, leadership should treat this as a resilience and service-continuity issue for a narrow set of network owners rather than an enterprise-wide emergency.

Business Impact: Medium
Compensating Controls

Apply vendor patch.

Threat Intelligence Overview

EPSS Score
0.2%
Top 90% exploitable
Prevalence
Low
batman-adv is a niche Linux kernel mesh-networking module, not default-enabled
Data Quality
4 sources
Confidence: Medium

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity HIGH
CISA KEV No
Public POC No
EPSS 0.2%
Patch available Yes
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation· derived
None
System Exposure· derived
Controlled
Automatable· derived
No
Human Impact
Medium

Priority Score

36
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +36
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Vendor StatusVendor

SUSE

Severity: Moderate
Product Status
SUSE Linux Enterprise Desktop 15 SP7 Affected
SUSE Linux Enterprise Desktop 15 SP7 Affected
SUSE Linux Enterprise High Availability Extension 15 SP7 Affected
SUSE Linux Enterprise High Availability Extension 15 SP7 Affected
SUSE Linux Enterprise High Availability Extension 16.0 Affected

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy