
PoC de CVE-2026-64531 (OVSwrap) - LPE de Open vSwitch del kernel de Linux; para validación de parches e investigación de seguridad
PoC de escalada de privilegios local (usuario normal → root) del módulo Open vSwitch del kernel de Linux. Aprovecha un desbordamiento de enteros en el campo nla_len de 16 bits para escalar de usuario normal hasta root.
Cuando el flujo de acciones anidadas generado por OVS supera los 65535 bytes, el campo nla_len de 16 bits se desborda. El atacante solo necesita tener CAP_NET_ADMIN dentro de un namespace privado de usuario/red para construir una acción CLONE de longitud excesiva, haciendo que el analizador del kernel caiga en datos de conntrack controlados por el atacante, obteniendo así lectura arbitraria del kernel y primitivas de decremento palabra a palabra, con las que finalmente altera sus propias credenciales y escala a root.
El bug se origina en una asignación insegura que lleva 13 años presente (commit 74f84a5726c7), anteriormente protegida por un límite de longitud total de 32 KiB; fue activada en marzo de 2025 cuando el commit a1e64addf3ff eliminó dicho límite.
openvswitch del kernel de Linuxunshare -Urn (sin necesidad de privilegios iniciales en el namespace)Las series 6.13–6.17, 6.19 y 7.0 ya están EOL, sin corrección.
unshare -Urn), sudo instalado# Debe ejecutarse como usuario normal (no root)
python3 ovswrap-poc.py
El script ejecuta automáticamente unshare -Urn para entrar en un namespace privado de usuario y de red; incorpora una tabla de offsets precalculados para unos 800 builds del kernel x86-64 y, si no hay coincidencia, intenta derivarlos dinámicamente desde System.map / BTF / pahole. Tras el éxito, escribe una entrada en /etc/sudoers.d/ para obtener una shell root sin contraseña.
Solo para investigación de seguridad, verificación de vulnerabilidades y pruebas defensivas. Este PoC corrompe las credenciales del kernel, modifica archivos de sudoers, deja procesos zombis y un estado de OVS dañado; ejecútalo únicamente en una máquina virtual desechable. No lo ejecutes en entornos de producción ni no autorizados.
3f1f755366687d051174739fb99f7d560202f60b| Serie del kernel | Rango afectado | Primera versión corregida |
|---|
| 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 |