Inicio / Alerta Temprana / Avisos Seguridad / Múltiples vulnerabilidades en OpenVPN

Múltiples vulnerabilidades en OpenVPN

Fecha de publicación: 
22/06/2017
Importancia: 
5 - Crítica
Recursos afectados: 

Las versiones afectadas son:

  • OpenVPN 2.4.2 y anteriores
  • OpenVPN 2.3.16 y anteriores
Descripción: 

El investigador de seguridad Guido Vranken ha descubierto varias vulnerabilidades críticas en OpenVNP por medio de técnicas de fuzzing. Estas vulnerabilidades no habían sido descubiertas en una auditoría previa de código.

Solución: 

OpenVPN ha publicado las versiones 2.4.3 y 2.3.17 que corrigen estas vulnerabilidades.

Detalle: 

Las vulnerabilidades encontradas son las siguientes:

  • Activación remota de ASSERT() en un paquete IPv6 mal formado: Esta vulnerabilidad es de carácter grave: puede ser utilizada para el apagado de forma remota de un servidor OpenVPN o cliente si IPv6 está habilitado. Se ha asignado el identificador CVE-2017-7508 para esta vulnerabilidad.
  • Fuga de información o fallo remoto previo a la autenticación de clientes: Si los clientes usan un proxy HTTP con autenticación NTLM, un atacante realizando un ataque man-in-the-middle entre el cliente y el servidor proxy puede hacer que el cliente se bloquee o divulgue información de la pila de memoria, siendo probable que contenga la contraseña utilizada en el proxy. Se ha asignado el identificador CVE-2017-7520 para esta vulnerabilidad.
  • Potencial doble liberación de memoria al utilizar autenticación basada en x509 como identificación de usuario: OpenVPN no comprueba correctamente los valores utilizados en extract_x509_extension() y este fallo podría provocar una doble liberación, pudiendo aprovecharse de forma remota y hacer que el proceso local se quede sin memoria. Se ha asignado el identificador CVE-2017-7521 para esta vulnerabilidad.
  • Fugas de memoria remotas: El procesado de certificados OpenSSL no se hace de forma correcta, y esto puede provocar fugas de memoria en cada intento de conexión, pudiendo llegar a causar de esta manera una denegación de servicio. Se ha asignado el identificador CVE-2017-7512 para esta vulnerabilidad.
  • Denegación de servicio remota después de la autenticación al utilizar la opción --x509-track: La función asn1_buf_to_c_string() puede devolver un valor NULL, pero lo que se espera es una cadena "mutable", si se hace uso de esa función de manera incorrecta un cliente podría bloquear un servidor mediante el envío de un certificado con caracteres NULL incluidos. Se ha asignado el identificador CVE-2017-7522 para esta vulnerabilidad.
  • Desreferencia a un puntero nulo en establish_http_proxy_passthru(): un cliente podría fallar si no se especifican los valores 'realm' o 'nonce'. Estos punteros son desreferenciados por DigestCalcHA1() y DigestCalcResponse(), por lo que si no se establecen se produciría la falta de referencia a un puntero nulo.

Además de estos fallos de seguridad, también se han solucionado otros de menor importancia o sin impacto en la seguridad.