Skip to content

CVE-2019-14899, posible secuestro de conexiones VPN en Linux o UNIX

CVE-2019-14899, posible secuestro de conexiones VPN en Linux o UNIX

Unos expertos en ciberseguridad han descubierto una nuvea vulnerabilidad con el ID CVE-2019-14899, que podría permitir a un atacante remoto secuestrar conexiones TCP activas en un túnel VPN. El hallazgo se ha producido en la Universidad de Nuevo Mexico

El fallo podría aprovecharlo un tercero que se encuentre en nuestor mismo segmento de red para, primero, determinar si estamos usando una VPN, obtener nuestra IP, determinar si estamos visitando una web concreta y potencialmente inyectar datos en el trama TCP.

Posible secuestro de paquetes TCP en conexiones VPN

Los expertos explican por qué esto permitiría secuestrar conexiones vía VPN activas:

Estoy reportando una vulnerabilidad que existe en la mayoría de distribuciones Linux actuales, y en otros sistemas operativos *nix (UNIX) que permite a un acatante situado en la red adyacente determinar si otro usuario está conectado a una VPN, la dirección IP virtual que le asigna el servidor VPN y si tiene una conexión activa con un sitio web dado. […] Además, se pueden obtener las secuencias numéricas seq y ack contando los paquetes cifrados y/o comparando su tamaño. Esto nos permite inyectar datos dentro de la cadena TCP y controlar las conexiones.

Advisory

Otro escenario de ataque podría implicar que los atacantes establezcan un punto de acceso falso (fake ap), para luego seguir esta secuencia de acciones:

  • Determinar la IP virtual del cliente VPN
  • Usar la IP virtual para interferir en las conexiones activas
  • Usando las respuestas cifradas a estos paquetes «no solicitados» o deseados, determinar la secuencia correcta y números de ack de la conexión activa, poniendo el paquete concreto donde corresponda

Afecta a multitud de distros y protocolos VPN

Este CVE-2019-14899 tiene afectación en muchos sistemas derivados de UNIX y Linux, entre los que podríamos citar Fedora, Debian, OpenBSD, FreeBSD, Android, macOS o iOS. Los investigadores han revelado el problema de forma inmediata y responsable a los equipos de desarrollo pertinentes.

Sistemas afectados hasta la fecha: Ubuntu 19.10 (systemd) Fedora (systemd) Debian 10.2 (systemd) Arch 2019.05 (systemd) Manjaro 18.1.1 (systemd) Devuan (sysV init) MX Linux 19 (Mepis+antiX) Void Linux (runit) Slackware 14.2 (rc.d) Deepin (rc.d) FreeBSD (rc.d) OpenBSD (rc.d)

Lectura recomendada: ¿Qué es y cómo funciona una VPN?

La vulnerabilidad se ha probado con éxito en agentes VPN que usan estándares OpenVPN, Wireguard y aquellos basasdos en IKEv2/IPsec, aunque no ha sido probado frente a la red Tor.

Los expertos han comentado que el ataque no ha sido satisfactorio frente a distribuciones Linux, hasta la publicación de Ubuntu 19.10. Los investigadores se dieron cuenta de que los ajustes en el archivo rp_filter se habían establecido como «loose».

Los ajustes por defecto en d/50-default se cambiaron allá por Noviembre de 2018 del original strict a loose, lo que significa que las distribuciones que emplean una versión de SystemD sin las configuraciones modificadas son ahora vulnerables.

¿Se puede mitigar?

Parece ser que podría mitigarse habilitando el filtrado de camino inverso o «reverse path», filtrando direcciones IP falsas o modificando el tamaño de paquete y su secuencia.

Se podría añadir una suerte de «padding» a cada paquete en su espacio libre para conseguir que todos los paquetes tengan la misma cantidad de información.

En el advisory publicado en seclists podéis hacer un seguimiento de los progresos a la hora de solventar este problema.

deweloper View All

Trabajo como consultor de ciberseguridad y me gusta lo que hago. Aficionado a la informática / tecnología en general, me gusta compartir con la gente lo poco que sé. También soy aficionado al deporte y los videojuegos.

Deja un comentario