Cloudanix VulnDB

CVE-2026-31683

High · 7.8

CVSS

7.8

EPSS

0.2%

Published

Apr 25, 2026

CISA due date

—

Cloudanix analysis

Next patch cycle SSVC: Track

A flaw in Linux mesh networking can let someone with local access crash or potentially take over affected systems if that feature is enabled.

Exploitation
Local Privilege
Attacker needs
Low Privilege
Complexity
Moderate
Impact
Privilege Gain
Component
OS kernel
Class
Buffer Overflow
Remediation
Upgrade
Effort
Medium
Patch risk
Medium

What it actually does

CVE-2026-31683 is a Linux kernel memory-corruption flaw in the B.A.T.M.A.N. advanced mesh networking subsystem, commonly exposed through the batman-adv kernel module. When Originator Message aggregation is toggled at runtime, an already allocated forwarded packet buffer may not have enough tailroom for a later packet selected for aggregation. If aggregation proceeds anyway, skb_put can overflow the socket buffer boundary, causing kernel memory corruption. Because this occurs in kernel context, successful exploitation could lead to kernel crash, denial of service, or potentially local privilege escalation, depending on kernel configuration and exploitability conditions.

Why it matters to the business

Systems using batman-adv mesh networking may be vulnerable to local kernel compromise or crashes. The practical risk is highest on routers, embedded Linux devices, wireless mesh nodes, lab networks, IoT gateways, and specialized appliances where batman-adv is enabled. Although EPSS is currently very low, there is no known public exploit, and the issue is not in CISA KEV, the CVSS score is high because kernel memory corruption can affect confidentiality, integrity, and availability. Organizations with widespread Linux kernel deployments should prioritize systems where batman-adv is loaded or available to unprivileged or semi-privileged users.

How an attack unfolds

An attacker first needs local access with sufficient privileges or capabilities to influence batman-adv mesh networking behavior, such as controlling a local account, container, namespace, or process that can configure network interfaces or participate in batman-adv forwarding. The attacker enables or interacts with a batman-adv interface, causes OGM aggregation state changes at runtime, and sends or forwards traffic patterns that cause an existing forwarded packet buffer to be reused for aggregation. If the target socket buffer lacks enough tailroom, the vulnerable kernel path appends data anyway and triggers an skb_put overflow. The immediate outcome may be a kernel BUG, panic, or memory corruption; with additional exploit engineering, this class of flaw may be used to alter kernel memory and elevate privileges.

How to fix it

Apply a Linux kernel update from the operating system or appliance vendor that includes the upstream batman-adv fix to reject aggregation when the target skb does not have sufficient tailroom. No exact fixed package versions were provided, so use vendor advisories and kernel changelogs for confirmation. If immediate patching is not possible, disable or unload the batman-adv module where it is not required, prevent it from autoloading, and remove or disable batman-adv mesh interfaces. Restrict CAP_NET_ADMIN and other network-administration privileges to trusted users and containers only. Avoid granting privileged containers access to host networking or kernel module loading. On systems that require batman-adv, reduce exposure by limiting who can change batman-adv settings and by monitoring runtime changes to OGM aggregation.

How to confirm the fix worked

Confirm that the running kernel version includes the vendor backport or upstream fix for the batman-adv skb tailroom aggregation check. Verify both the installed kernel package and the active running kernel after reboot. Check whether batman-adv is loaded with lsmod or /proc/modules, and enumerate batman-adv interfaces using ip link and batctl if available. Validate that unnecessary systems do not load batman_adv automatically, for example through modprobe configuration or network startup scripts. For mitigated systems, confirm that untrusted users and containers do not have CAP_NET_ADMIN, host networking, or kernel module loading permissions. Where batman-adv remains enabled, perform controlled regression testing to ensure OGM aggregation toggling no longer produces skb_put, skbuff, or batman-adv kernel warnings.

Typical attack path

  1. Gain local code execution on a Linux system where the batman-adv module is present or can be loaded.
  2. Obtain the ability to configure or interact with batman-adv networking, typically through CAP_NET_ADMIN, root-equivalent permissions, or a privileged network namespace.
  3. Create or use a batman-adv mesh interface, commonly exposed as bat0 or another batman-adv interface.
  4. Toggle OGM aggregation behavior at runtime while traffic is being forwarded.
  5. Send crafted or timed mesh traffic so a later packet is selected for aggregation into a previously allocated skb with insufficient tailroom.
  6. Trigger skb_put overflow in kernel space, causing memory corruption, kernel panic, or a potential privilege-escalation condition.

How to detect it

Look for evidence that batman-adv was enabled, configured, or manipulated before a kernel crash or privilege anomaly. Useful sources include kernel ring buffer logs, journald kernel logs, /var/log/kern.log, /var/log/messages, syslog, auditd, EDR telemetry, command history, shell session logs, container runtime audit logs, and crash dumps. Search for module loading events for batman_adv, creation of batman-adv interfaces, use of batctl, OGM aggregation configuration changes, and kernel messages mentioning skb_put, skbuff overflow, skb_over_panic, batman-adv, or BUG/Oops/panic near mesh networking activity. If available, inspect vmcores with crash/kdump for stack traces involving batadv aggregation or skbuff functions. Correlate events with local user logins, sudo activity, container launches with CAP_NET_ADMIN, privileged containers, or namespace creation. There are no public threat actors or ransomware campaigns currently associated with this CVE, so detection should focus on behavioral evidence and kernel artifacts rather than actor-specific indicators.

  • batman_adv
  • batman-adv
  • bat0
  • batctl
  • aggregation
  • orig_interval
  • skb_put
  • skb_over_panic
  • skbuff
  • kernel BUG at net/core/skbuff.c
  • BUG: kernel NULL pointer dereference
  • BUG: unable to handle kernel paging request
  • Kernel panic - not syncing
  • Oops:
  • modprobe batman_adv
  • insmod batman-adv
  • /sys/module/batman_adv
  • /sys/class/net/bat0
  • /proc/net/batman_adv
  • CAP_NET_ADMIN
  • privileged container
  • host network

What your security team should do

  • Prioritize patching Linux systems where batman-adv is loaded, configured, or required for mesh networking.
  • Inventory hosts and appliances for the batman_adv kernel module, batman-adv interfaces, and batctl usage.
  • Disable or blacklist batman_adv on systems that do not require mesh networking.
  • Restrict CAP_NET_ADMIN, privileged containers, host network namespace access, and kernel module loading to trusted administrators only.
  • Review kernel logs for recent skbuff, skb_put, batman-adv, or unexplained kernel panic events.
  • Monitor for unexpected creation of batman-adv interfaces such as bat0 or runtime changes to OGM aggregation settings.
  • Track vendor kernel advisories because fixed versions may be distributed as backports rather than obvious upstream version changes.
  • Treat any kernel crash correlated with batman-adv activity as potentially security-relevant and preserve logs, vmcores, and timeline evidence.

The record

In the Linux kernel, the following vulnerability has been resolved: batman-adv: avoid OGM aggregation when skb tailroom is insufficient When OGM aggregation state is toggled at runtime, an existing forwarded packet may have been allocated with only packet_len bytes, while a later packet can still be selected for aggregation. Appending in this case can hit skb_put overflow conditions. Reject aggregation when the target skb tailroom cannot accommodate the new packet. The caller then falls back to creating a new forward packet instead of appending.

Affected packages

Ecosystem Package Introduced Fixed
openSUSE:Leap 16.0 dtb-aarch64 0 6.12.0-160000.35.1
openSUSE:Leap 16.0 kernel-64kb 0 6.12.0-160000.35.1
openSUSE:Leap 16.0 kernel-azure 0 6.12.0-160000.35.1
openSUSE:Leap 16.0 kernel-default 0 6.12.0-160000.35.1
openSUSE:Leap 16.0 kernel-default-base 0 6.12.0-160000.35.1.160000.2.16
openSUSE:Leap 16.0 kernel-docs 0 6.12.0-160000.35.1
openSUSE:Leap 16.0 kernel-kvmsmall 0 6.12.0-160000.35.1
openSUSE:Leap 16.0 kernel-obs-build 0 6.12.0-160000.35.1
openSUSE:Leap 16.0 kernel-obs-qa 0 6.12.0-160000.35.1
openSUSE:Leap 16.0 kernel-rt 0 6.12.0-160000.35.1
openSUSE:Leap 16.0 kernel-source 0 6.12.0-160000.35.1
openSUSE:Leap 16.0 kernel-syms 0 6.12.0-160000.35.1
openSUSE:Leap 16.0 kernel-zfcpdump 0 6.12.0-160000.35.1

Related vulnerabilities