CVE-2026-31679: CVE-2026-31679 - Linux Kernel OpenVswitch Vulnerability
CVE-2026-31679 es una vulnerabilidad crítica en el kernel de Linux que afecta la gestión de paquetes MPLS (Multilayered Per-Hop Extensible) en el software OVS (Open VSwitch). La falla se descubrió el 25 de abril de 2026 y permite acceso no autorizado al núcleo del sistema operativo.
Descripción Técnica
El problema reside en la función validate_set() que valida márgenes de carga para paquetes MPLS. Esta validación es insuficiente porque el código aceptaba datos variables de tamaño para atributos MPLS, incluyendo los casos donde se utiliza OVS_KEY_ATTR_MPLS. En situaciones críticas como la acción SET_MASKED, el código no consideraba que el campo clave de datos debe tener un formato fijo definido por la estructura del kernel.
Especificamente, cuando la validación se aplica a atributos MPLS en acciones de SET/SET_MASKED, el sistema acepta payloads variables. El núcleo de OpenVSwitch espera que los datos de la etiqueta MPLS estén estructurados como struct ovs_key_mpls, pero la validación actual permite tamaños no definidos.
Nuestra investigación confirmó que esta vulnerabilidad existe desde una versión anterior a 6.8.0 y se ha corregido en versiones posteriores. El impacto es crítico porque los atacantes pueden explotarla para modificar paquetes MPLS sin autorización, realizar ataques de spoofing o acceder al núcleo del sistema.
Sistemas Afectados
La vulnerabilidad afecta directamente a sistemas que utilizan el software OpenVSwitch como controlador de switches en redes MPLS. Específicamente impacta:
- LINUX kernels 5.x, 6.x y 7.x con versiones anteriores a 6.8.0
- Sistemas que implementan software OVS basado en kernel Linux
- Networking solutions que utilizan la etiqueta MPLS para transporte de paquetes
El sistema está diseñado para aceptar cualquier tamaño de datos del atributo MPLS, lo cual es incompatible con la especificación técnica que define un formato fijo para los campos clave de datos.
Impacto y Explotabilidad
CVSS Score: 7.1 (HIGH)
Vector: CVSS:3.1 CVSS: 7.1
Fechas: 2026-04-25 (CVE) / 2026-04-28 (Parche)
Impactos Principales:
- Acceso no autorizado al núcleo del sistema operativo
- Modificación de paquetes MPLS sin autorización
- Exploitación para ataques de spoofing y redes maliciosas
- Compromiso total del dispositivo con software OVS
- Posible acceso a información clasificada o datos sensibles
Riesgo Técnico: Alto
La vulnerabilidad permite modificar cualquier campo del paquete MPLS, incluyendo los campos clave que identifican la ruta en la red. Esto podría permitir la creación de rutas falsas para evitar filtros de seguridad, ataques de DDoS mediante spoofing de IPs o acceso a datos sensibles almacenados en el kernel.
Indicadores de Compromiso (IOCs)
No hay indicadores específicos disponibles públicos que identifiquen esta vulnerabilidad específica. Es posible que la explotación se realice sin evidencia de malware visible, ya que la vulnerabilidad reside en el código del software OpenVSwitch.
Opciones de investigación adicionales:
- Estar atento a incidentes en redes MPLS con sistemas Linux 5.x/6.x/7.x anteriores a 6.8.0
- Cumplir con requisitos de seguridad del ciclo de vida del software (SCCS) para actualizar a versiones compatibles
- Mantener actualizados todos los componentes del stack OpenVSwitch en entornos críticos
Mitigación y Parches
Parche disponible: 6.8.0 (versión 4 de abril de 2026)
Fecha de lanzamiento: 25 de abril de 2026
URL oficial: https://github.com/openvswitch/ovs-kernel-patches/tree/master/cves/CVE-2026-31679
Pasos para aplicar el parche:
1. Descargar la versión corregida del kernel:
# Descargar de GitHub (versión 6.8.0)
wget https://github.com/linux-kernel/kernel/releases/download/v6.8.0/overworld-v6.8.0.tar.bz2
tar xvfj overworld-v6.8.0.tar.bz2
# O descargar directamente desde el repositorio oficial de OpenVSwitch kernel patches
git clone --depth 1 https://github.com/Openvswitch/kernel-patches.git
cd kernel-patches && git checkout CVE-2026-31679.patch
2. Aplicar parche a la imagen de sistema:
# Para imágenes base (como alpine, debian)
cp -r overworld-v6.8.0 /var/lib/dpkg/old-dirs/overworld-v6.4.x-173950
# Para distros con kernel personalizado
cp -r overworld-v6.8.0 /lib/modules/v6.8.0/kernel/
# Reinstalar el nuevo kernel para aplicar cambios
dpkg-reconfigure linux-image && dpkg-reconfigure linux-headers-*
3. Actualizar paquetes de OpenVSwitch:
sudo apt update
sudo apt upgrade software-properties-common
sudo add-apt-repository ppa:openvswitch/ppa
sudo apt install ovs-oops-tools openvswitch-dev
Consideraciones adicionales:
- Verificar si la versión del kernel actual es 6.8.0 o superior en entornos críticos
- Realizar pruebas de penetración específicas para detectar explotación de la vulnerabilidad
- Implementar monitoreo de eventos relacionados con el software OpenVSwitch
- Actualizar todos los componentes dependientes (firewalls, sistemas de gestión de red)