
A Linux kernel bug dormant since 2013 turned fully exploitable last week. OVSwrap (CVE-2026-64531) is a local privilege escalation in the Open vSwitch kernel datapath that lets any unprivileged local user escalate to root — no OVS configuration, no running daemon, no special permissions needed. A public proof-of-concept with precomputed offsets for roughly 800 kernel builds dropped July 28. Ubuntu 22.04+, Debian 12+, RHEL 9.7+, Amazon Linux 2023, and most mainstream Linux distributions are affected. If you haven’t patched or mitigated, you’re exposed.
“I Don’t Use OVS” Is Not a Defense
This is the assumption that will get people burned. Most engineers will look at “Open vSwitch” in the CVE description and move on — their infrastructure doesn’t use OVS, so the problem isn’t theirs. That reasoning is wrong, and dangerously so.
The openvswitch kernel module ships as part of the standard kernel package on virtually every major Linux distribution. The attacker never needs an existing OVS bridge, a running ovs-vswitchd daemon, or any OVS configuration at all. All they need is a local user account and access to unprivileged user namespaces — which are enabled by default on every modern distribution. The module doesn’t even need to be loaded before the attack begins; the attacker’s exploit loads it.
How a 13-Year-Old Integer Overflow Became a Root Shell
The unsafe assignment was introduced circa 2013 in add_nested_action_end(). For over a decade, a 32 KiB total action-stream cap made it completely unreachable. In March 2025, kernel maintainers removed that cap to fix unrelated failures in large flow tables — a reasonable change that accidentally activated a long-dormant flaw. As researcher Asim Manizada wrote in his technical write-up: “removing the check on the total length made sense, but it had the side effect of no longer preventing any nested attributes from reaching 65,536 bytes.”
The exploit chain: the attacker uses unshare -Urn to create a private user/network namespace, gaining CAP_NET_ADMIN within it to talk to the OVS netlink interface. They submit a CLONE action packed with hundreds of conntrack sub-actions. The generated action stream exceeds 65,535 bytes, causing the 16-bit nla_len field to wrap to a small number. The OVS parser resumes reading from inside attacker-controlled bytes, treating them as legitimate actions. Three chained primitives follow: kernel pointer leak (defeat KASLR), arbitrary kernel read, and repeated decrements of the process’s fsuid/fsgid to zero. The PoC writes a sudoers entry and opens a root shell.
What makes this unusually dangerous is reliability. No heap grooming required. The public exploit ships precomputed offsets for approximately 800 x86-64 kernel builds derived from public symbol tables. The Hacker News notes it achieves “logic-bug-grade reliability” — a rare characteristic for kernel memory corruption. Manizada discovered the flaw using LLMs with geometric ASCII-diagram state tracking to overcome models’ typical weakness at spatial memory reasoning.
Check Your Kernel Version
Run uname -r and compare against the fix matrix. Patched versions by LTS branch:
- 5.15 LTS → fixed in 5.15.212
- 6.1 LTS → fixed in 6.1.178
- 6.6 LTS → fixed in 6.6.145
- 6.12 → fixed in 6.12.97
- 6.18 → fixed in 6.18.40
- 7.1 → fixed in 7.1.5
If you’re below the fixed version for your branch, you’re vulnerable right now.
Fix It: Three Mitigation Options
Option 1 — Blacklist the module (fastest, no reboot, for non-OVS hosts):
echo 'install openvswitch /bin/false' | sudo tee /etc/modprobe.d/99-ovswrap.conf
sudo modprobe -r openvswitch 2>/dev/null; true
This is the right call for most servers and developer workstations that don’t actually run Open vSwitch. No reboot required.
Option 2 — Restrict user namespaces (for OVS-dependent hosts):
echo 'user.max_user_namespaces = 0' | sudo tee /etc/sysctl.d/99-ovswrap.conf
sudo sysctl --system
Warning: this breaks rootless Docker, rootless Podman, Snap, and Flatpak. AppArmor’s apparmor_restrict_unprivileged_userns has documented bypasses — don’t use it as a substitute. Per the TuxCare analysis, the sysctl is the only reliable namespace-based mitigation.
Option 3 — Patch and reboot:
# Ubuntu/Debian
sudo apt update && sudo apt upgrade linux-image-generic && sudo reboot
# RHEL / AlmaLinux / Rocky
sudo dnf update kernel && sudo reboot
Live patching via KernelCare is available for Enterprise Linux 9 (available since July 30, 2026) with other distributions in rollout. Run kcarectl --update and verify with kcarectl --patch-info | grep CVE-2026-64531.
Cloud and Container Teams: Elevated Risk
Multi-tenant environments face elevated risk. A compromised application container that lands a local shell can use OVSwrap to escalate to host root — a full container escape with a single, reliable exploit. Kubernetes clusters running ovn-kubernetes or Antrea, OpenStack compute nodes, and KVM hypervisors with OVS networking are all in scope. Cloud VMs are not exempt: the openvswitch module is present and loadable by default on most major cloud provider base images.
If your Kubernetes nodes depend on an OVS-based CNI plugin, blacklisting the module breaks networking. Go with namespace restriction (after auditing your container runtime) or patch and reboot. The CloudLinux mitigation guide has distribution-specific steps for OVS-dependent production environments.
The Bottom Line
CVE-2026-64531 is a CVSS 7.8 local root with a public, reliable exploit targeting virtually every mainstream Linux distribution. The four-day window between upstream patch and public PoC has closed. The fix exists, the mitigation is one command, and “I don’t use OVS” is not a valid response. Check your kernel version now and close this out before the next shift change.













