Vulnerabilidad crítica en PPPd permitiría a una atacante no autenticado la ejecución remota de código como root

PPP es un protocolo del nivel de enlace de datos, utilizado para establecer una conexión directa entre dos nodos de una red, para gestionar estas conexiones se utiliza el software PPPd.

¿Qué pasó?

Recientemente se ha publicado una vulnerabilidad crítica identificada como CVE-2020-8597 que afecta al software PPPd desde las versiones 2.4.2 hasta la 2.4.8.

Esta vulnerabilidad de ser explotada permitiría a un atacante remoto no autenticado causar un desbordamiento del búfer, lo que podría conducir a la ejecución remota de código, y se da debido a que el componente encargado de procesar los paquetes EAP presenta un error a la hora de validar el tamaño de la entrada. Concretamente las funciones afectadas son eap_request() y eap_response() del archivo eap.c.

Por otro lado la función eap_input() también presenta un fallo, y se da al no verificar correctamente si se ha negociado la autenticación EAP durante la fase de control del protocolo de enlace. Esto permitiría a un atacante remoto no autenticado enviar paquetes EAP y estos serán procesados por la función eap_input() incluso si la autenticación no ha sido negociada de manera adecuada o PPP ha rechazado la conexión.

PPPd generalmente se ejecuta con permisos elevados (de root o de system) y funciona junto con los controladores del kernel, esto hace posible que un atacante no autenticado pueda ejecutar código remoto con privilegios de root o system.Esta falla además afecta a la pila lwIP, sólo si el EAP ha sido habilitado en el momento de la compilación.

Los fabricantes que han confirmado la vulnerabilidad, se listan a continuación:

  • Debian
  • Ubuntu
  • SUSE Linux
  • Fedora
  • NetBSD
  • Red Hat Enterprise Linux
  • Cisco CallManager
  • Productos TP-LINK
  • SO embebido OpenWRT
  • Productos Synology

Un ejemplo de la explotación de esta vulnerabilidad la puede ver aquí.

Recomendación:

Referencias:

Compartir: