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

batman-adv: bla: avoid double decrement of bla.num_requests

The bla.num_requests is increased when no request_sent was in progress. And
it is decremented in various places (announcement was received, backbone is
purged, periodic work). But the check if the request_sent is actually set
to a specific state and the atomic_dec/_inc are not safe because they are
not atomic (TOCTOU) and multiple such code portions can run concurrently.

At the same time, it is necessary to modify request_sent (state) and
bla.num_requests atomically. Otherwise batadv_bla_send_request() might set
request_sent to 1 and is interrupted. batadv_handle_announce() can then
set request_sent back to 0 and decrement num_requests before
batadv_bla_send_request() incremented it.

The two operations must therefore be locked. And since state (request_sent)
and wait_periods are only accessed inside this lock, they can be converted
to simpler datatypes. And to avoid that the bla.num_requests is touched by
a parallel running context with a valid backbone_gw reference after
batadv_bla_purge_backbone_gw() ran, a third state "stopped" is required to
correctly signal that a backbone_gw is in the state of being cleaned up.
Published: 2026-07-19
Score: 7.1 High
EPSS: < 1% Very Low
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

The vulnerability is a race condition in the batman-adv subsystem of the Linux kernel where concurrent decrements of the bla.num_requests counter can occur without proper atomic synchronization. This flaw causes the counter and the request_sent state to become inconsistent, potentially leading to negative or corrupted values, kernel crashes, or disabling batman-adv functionality. The weakness is a Time‑of‑Check to Time‑of‑Use race (CWE‑367).

Affected Systems

All Linux kernel deployments that include the batman-adv module are affected, as the flaw originates in the kernel’s batman‑adv code. No specific kernel version is listed, so all kernel releases prior to the fix are considered impacted.

Risk and Exploitability

The CVSS score of 7.1 signals moderate severity, and the EPSS score of less than 1% indicates a low likelihood of exploitation. The vulnerability is not cataloged in CISA’s KEV list. Based on the description, it is inferred that an attacker would need to have local or privileged access to trigger the concurrent contexts that expose the race condition. If successfully exploited, the inconsistency could lead to system instability or denial of service.

Generated by OpenCVE AI on July 30, 2026 at 20:36 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Update the system to a kernel version that contains the batman-adv patch (for example the commit identified by 1f013bc93).
  • If the patch is not yet available, disable or unload the batman-adv kernel module until an updated kernel is released.
  • Monitor kernel logs such as /var/log/kern.log or dmesg for batadv counter anomalies or crashes and apply any subsequent advisory patches promptly.

Generated by OpenCVE AI on July 30, 2026 at 20:36 UTC.

Tracking

Sign in to view the affected projects.

Advisories
Source ID Title
Ubuntu USN Ubuntu USN USN-8593-1 Linux kernel vulnerabilities
Ubuntu USN Ubuntu USN USN-8603-1 Linux kernel (Azure) vulnerabilities
Ubuntu USN Ubuntu USN USN-8618-1 Linux kernel vulnerabilities
History

Mon, 20 Jul 2026 14:45:00 +0000

Type Values Removed Values Added
Metrics cvssV3_1

{'score': 7.1, 'vector': 'CVSS:3.1/AV:A/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:H'}


Mon, 20 Jul 2026 12:15:00 +0000


Sun, 19 Jul 2026 16:15:00 +0000

Type Values Removed Values Added
Description In the Linux kernel, the following vulnerability has been resolved: batman-adv: bla: avoid double decrement of bla.num_requests The bla.num_requests is increased when no request_sent was in progress. And it is decremented in various places (announcement was received, backbone is purged, periodic work). But the check if the request_sent is actually set to a specific state and the atomic_dec/_inc are not safe because they are not atomic (TOCTOU) and multiple such code portions can run concurrently. At the same time, it is necessary to modify request_sent (state) and bla.num_requests atomically. Otherwise batadv_bla_send_request() might set request_sent to 1 and is interrupted. batadv_handle_announce() can then set request_sent back to 0 and decrement num_requests before batadv_bla_send_request() incremented it. The two operations must therefore be locked. And since state (request_sent) and wait_periods are only accessed inside this lock, they can be converted to simpler datatypes. And to avoid that the bla.num_requests is touched by a parallel running context with a valid backbone_gw reference after batadv_bla_purge_backbone_gw() ran, a third state "stopped" is required to correctly signal that a backbone_gw is in the state of being cleaned up.
Title batman-adv: bla: avoid double decrement of bla.num_requests
First Time appeared Linux
Linux linux Kernel
CPEs cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
Vendors & Products Linux
Linux linux Kernel
References

Subscriptions

Linux Linux Kernel
cve-icon MITRE

Status: PUBLISHED

Assigner: Linux

Published:

Updated: 2026-08-05T12:39:09.386Z

Reserved: 2026-07-19T07:54:57.033Z

Link: CVE-2026-64095

cve-icon Vulnrichment

No data.

cve-icon NVD

No data.

cve-icon Redhat

Severity :

Publid Date: 2026-07-19T00:00:00Z

Links: CVE-2026-64095 - Bugzilla

cve-icon OpenCVE Enrichment

Updated: 2026-07-30T20:45:17Z

Weaknesses
  • CWE-367

    Time-of-check Time-of-use (TOCTOU) Race Condition