Fue encontrado un fallo en pppd que permitía ejecutar código de forma remota como root

Se acaba de dar a conocer al público una vulnerabilidad en el paquete pppd (CVE-2020-8597) la cual afecta seriamente a algunos servicios VPN, conexiones DSL y también de Ethernet pues el fallo encontrado permitía ejecutar código enviando solicitudes de autenticación especialmente diseñadas a los sistemas que utilizan PPP (Protocolo punto a punto) o PPPoE (PPP sobre Ethernet).

Y es que como mencionamos, diversos proveedores suelen utilizar estos protocolos para establecer conexiones a través de Ethernet o DSL y también se utilizan en algunas VPN por ejemplo, pptpd y openfortivpn.

Para probar la susceptibilidad de los sistemas al problema, se preparó un prototipo de exploit, el cual ya está disponible al público en general.

Sobre el fallo

La vulnerabilidad es causada por el desbordamiento de búfer en la implementación del Protocolo de autenticación extensible (EAP).

Una falla lógica adicional hace que la función eap_input () no verifique si EAP ha sido negociado durante la fase del Protocolo de control de línea (LCP).

Esto permite que un atacante no autenticado envíe un paquete EAP incluso si ppp rechazó la negociación de autenticación debido a la falta de soporte para EAP o debido a la falta de coincidencia de una frase de contraseña precompartida acordada en la fase LCP.

El código pppd vulnerable en eap_input seguirá procesando el paquete EAP y activará el desbordamiento del búfer de la pila.

Estos datos no verificados con un tamaño desconocido se pueden usar para dañar la memoria del sistema de destino. El pppd a menudo se ejecuta con altos privilegios (sistema o raíz) y funciona junto con los controladores del kernel. Esto hace posible que un atacante ejecute potencialmente código arbitrario con privilegios de nivel de sistema o raíz.

Con ello, se puede realizar un ataque en la etapa antes de que la autenticación pase enviando un paquete con el tipo EAPT_MD5CHAP, incluido un nombre de host muy largo que no cabe en el búfer asignado.

Debido a un error en el código para verificar el tamaño del campo rhostname, el atacante puede sobrescribir datos fuera del búfer en la pila y lograr la ejecución remota de su código con privilegios de root.

La vulnerabilidad se manifiesta en el lado del servidor y del cliente, es decir no solo se puede atacar al servidor, sino también al cliente que intenta conectarse al servidor controlado por el atacante (por ejemplo, un atacante puede hackear el servidor a través de la vulnerabilidad primero y luego comenzar a atacar a los clientes que se conectan).

La vulnerabilidad también afecta a la pila lwIP, pero el soporte EAP no está habilitado en la configuración predeterminada en lwIP.

Versiones afectas y solución 

Como tal este fallo detectado afecta a las versiones de pppd 2.4.2 a 2.4.8 inclusive y se soluciona en forma de parche. Ya que algunos de ustedes sabrán que la divulgación de fallos al público en general se realiza tiempo después de su descubrimiento y de que el problema se haya resuelto. Y es que, aunque esto lleva todo un proceso, aún está la parte del usuario el cual debe realizar la actualización correspondiente.

El estado de solución del problema se puede revisar dentro los informes de las principales distribuciones de Linux.

Esto se puede ver en estas las páginas: Debian, Ubuntu, RHEL, Fedora, SUSE, OpenWRT, Arch, NetBSD.

En RHEL, OpenWRT y SUSE, el paquete pppd se compila con la inclusión de «Stack Smashing Protection» (modo «-fstack-protector» en gcc), que limita la operación del bloqueo.

Además de las distribuciones, la vulnerabilidad también se confirma en algunos productos de Cisco (CallManager), TP-LINK y Synology (DiskStation Manager, VisualStation VS960HD y Router Manager) utilizando código pppd o lwIP.

Como tal el parche ya se encuentra disponible dentro de los repositorios de la mayoria de las distribuciones de Linux y algunas ya lo han implementado ofreciendo la actualización del paquete.

Si quieres conocer más al respecto sobre el fallo encontrado, puedes consultar los detalles y mayor información en el siguiente enlace.


El contenido del artículo se adhiere a nuestros principios de ética editorial. Para notificar un error pincha aquí.

Sé el primero en comentar

Deja tu comentario

Tu dirección de correo electrónico no será publicada.

*

*

  1. Responsable de los datos: Miguel Ángel Gatón
  2. Finalidad de los datos: Controlar el SPAM, gestión de comentarios.
  3. Legitimación: Tu consentimiento
  4. Comunicación de los datos: No se comunicarán los datos a terceros salvo por obligación legal.
  5. Almacenamiento de los datos: Base de datos alojada en Occentus Networks (UE)
  6. Derechos: En cualquier momento puedes limitar, recuperar y borrar tu información.