
CVE-2026-64531 (OVSwrap) PoC - Linux kernel Open vSwitch LPE; for patch validation and security research
Linux kernel Open vSwitch module local privilege escalation (normal user → root) PoC. Exploits the integer wraparound of the 16-bit nla_len field to escalate from a normal user all the way to root.
When the nested action stream generated by OVS exceeds 65535 bytes, the 16-bit nla_len field wraps around. An attacker holding only CAP_NET_ADMIN in a private user/network namespace can craft an oversized CLONE action, causing the kernel parser to fall into attacker-controlled conntrack data, thereby gaining arbitrary kernel read and word-by-word decrement primitives, ultimately tampering with its own credentials to escalate to root.
The bug stems from an unsafe assignment that has existed for 13 years (commit 74f84a5726c7), previously protected by a 32 KiB total length limit; it was activated in March 2025 after commit a1e64addf3ff removed the limit.
openvswitch moduleunshare -Urn (no initial namespace privileges required)The 6.13–6.17, 6.19, and 7.0 series are EOL and have no fixes.
unshare -Urn), sudo installed# 必须以普通(非 root)用户运行
python3 ovswrap-poc.py
The script automatically runs unshare -Urn into a private user+network namespace; it includes a pre-derived offset table for approximately 800 x86-64 kernel builds, and when no match is found it attempts dynamic derivation from System.map / BTF / pahole. On success, it obtains a passwordless root shell by writing an entry to /etc/sudoers.d/.
For security research, vulnerability validation, and defensive testing only. This PoC will corrupt kernel credentials, modify the sudoers file, and leave behind zombie processes and damaged OVS state — run it only in a disposable virtual machine; do not run it in production or unauthorized environments.
3f1f755366687d051174739fb99f7d560202f60b| Kernel Series | Affected Range | First Fixed Version |
|---|
| 5.15.y | 5.15.180 – 5.15.211 | 5.15.212 |
| 6.1.y | 6.1.132 – 6.1.177 | 6.1.178 |
| 6.6.y | 6.6.84 – 6.6.144 | 6.6.145 |
| 6.12.y | 6.12.20 – 6.12.96 | 6.12.97 |
| 6.18.y | 6.18.0 – 6.18.39 | 6.18.40 |
| 7.1.y | 7.1.0 – 7.1.4 | 7.1.5 |