Skip to main content
CVE Vulnerability Database
Vulnerability Database/CVE-2026-68432

CVE-2026-68432: Linux Kernel Privilege Escalation Flaw

CVE-2026-68432 is a privilege escalation vulnerability in the Linux kernel vxlan module that allows unauthorized network namespace modifications. This article covers technical details, affected versions, and mitigation.

Published:

CVE-2026-68432 Overview

CVE-2026-68432 is a Linux kernel vulnerability in the VXLAN (Virtual Extensible LAN) tunnel driver. The flaw resides in the vxlan_changelink() operation, which failed to enforce CAP_NET_ADMIN in the device's underlay network namespace. A caller privileged in dev_net(dev) but not in the sticky underlay netns vxlan->net could rewrite a VXLAN device configuration and reopen its underlay socket in a namespace where it lacked authority. The fix gates vxlan_changelink() with rtnl_dev_link_net_capable() before parsing any attributes, aligning the check with ipgre_changelink() and the broader tunnel changelink hardening series.

Critical Impact

A process with CAP_NET_ADMIN in one network namespace can reconfigure VXLAN devices whose underlay resides in a different namespace, breaking netns isolation boundaries.

Affected Products

  • Linux kernel VXLAN driver (drivers/net/vxlan/)
  • Systems using multiple network namespaces with VXLAN tunnels
  • Container and virtualization platforms relying on netns isolation for tenant separation

Discovery Timeline

  • Vulnerability found by 0sec automated security-research tooling (0sec.ai)
  • 2026-08-12 - CVE-2026-68432 published to NVD
  • 2026-08-12 - Last updated in NVD database

Technical Details for CVE-2026-68432

Vulnerability Analysis

A VXLAN tunnel changelink() operation may act on two distinct network namespaces: dev_net(dev), the namespace the device currently resides in, and vxlan->net, the sticky underlay namespace where the transport socket lives. These namespaces diverge once the device is created in or moved to a namespace other than the one issuing the netlink request.

The rtnl changelink path in the Linux kernel validated CAP_NET_ADMIN only against dev_net(dev). The vxlan_changelink() implementation, however, validates and applies the new configuration against vxlan->net via vxlan_config_validate(vxlan->net, ...) and can reopen the underlay socket in that namespace. This mismatch allows a caller privileged only in the device netns to influence networking state in the underlay netns.

Root Cause

The root cause is a missing capability check on the underlay network namespace. The changelink operation trusts the rtnl layer's CAP_NET_ADMIN verification, which only examines dev_net(dev). Because VXLAN retains a reference to its creation-time underlay namespace, any configuration change that touches the underlay socket effectively crosses a namespace boundary without a corresponding privilege check.

Attack Vector

A local attacker with CAP_NET_ADMIN in a container or unprivileged user namespace containing the VXLAN device, but without privileges in the underlay namespace, can issue a netlink RTM_NEWLINK changelink request. The request can alter VXLAN configuration and cause the kernel to reopen the underlay UDP socket in the privileged namespace. This bypasses network namespace isolation, a foundational assumption in container runtimes and multi-tenant hosting.

The upstream fix adds rtnl_dev_link_net_capable() at the top of vxlan_changelink() before any attribute parsing. See the mainline commits 32d10c46, 3a61bd96, 730c7e5f, b3793d7d, and e8ad0d31 for the backport series.

Detection Methods for CVE-2026-68432

Indicators of Compromise

  • Unexpected RTM_NEWLINK netlink messages targeting VXLAN devices from processes outside the underlay network namespace.
  • Unexplained reopening of VXLAN UDP transport sockets or changes to VNI, remote IP, or destination port on existing VXLAN interfaces.
  • Container workloads issuing ip link set operations against host-owned tunnel devices.

Detection Strategies

  • Audit netlink traffic with auditd rules on the sendmsg syscall filtered by NETLINK_ROUTE to correlate changelink requests with the invoking process, UID, and namespace.
  • Compare running kernel version against distribution advisories to identify unpatched hosts running VXLAN workloads.
  • Instrument eBPF probes on vxlan_changelink to log the calling task's namespace and credentials during configuration changes.

Monitoring Recommendations

  • Track container escape indicators such as processes with CAP_NET_ADMIN interacting with host network interfaces.
  • Alert on configuration drift of VXLAN interfaces on production hypervisors and Kubernetes nodes.
  • Forward kernel and audit logs to a centralized analytics platform for correlation across the fleet.

How to Mitigate CVE-2026-68432

Immediate Actions Required

  • Apply the vendor-supplied kernel updates from your Linux distribution as soon as they are available.
  • Inventory hosts running VXLAN overlays, including Kubernetes CNI plugins such as Flannel, Calico VXLAN mode, and Cilium in VXLAN encapsulation mode.
  • Restrict CAP_NET_ADMIN inside user namespaces and containers unless explicitly required for the workload.

Patch Information

The upstream Linux kernel commits addressing this issue are 32d10c46, 3a61bd96, 730c7e5f, b3793d7d, and e8ad0d31. The fix adds rtnl_dev_link_net_capable() to vxlan_changelink() so that both dev_net(dev) and vxlan->net are subject to a CAP_NET_ADMIN check.

Workarounds

  • Avoid creating VXLAN devices that are subsequently moved into less-privileged network namespaces whose administrators should not control the underlay.
  • Drop CAP_NET_ADMIN from container security profiles and use seccomp filters to block RTM_NEWLINK where feasible.
  • Where possible, disable unprivileged user namespaces on hosts that do not require them by setting kernel.unprivileged_userns_clone=0.
bash
# Verify the running kernel version and check for VXLAN devices
uname -r
ip -d link show type vxlan

# Disable unprivileged user namespaces as a defense-in-depth measure
sysctl -w kernel.unprivileged_userns_clone=0
echo 'kernel.unprivileged_userns_clone=0' > /etc/sysctl.d/99-userns.conf

Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.

Default Legacy - Prefooter | Experience the World’s Most Advanced Cybersecurity Platform

Experience the Most Advanced Cybersecurity Platform

See how the world’s most intelligent, autonomous cybersecurity platform can protect your organization today and into the future.