Corregidas tres vulnerabilidades en curl que podrían causar una
denegación de servicio y potencialmente, ejecutar código arbitrario.
Curl es un popular programa y librería para el lenguaje C y C++, que
permite interactuar con recursos URL.
Detalle e impacto
de vulnerabilidades
La primera vulnerabilidad se encuentra en el código que implementa la
autenticación NTLM, justo en la función 'Curl_ntlm_core_mk_ntlmv2_hash'. El
fallo se debe a un calculo defectuoso del tamaño necesario de búfer para
calcular el hash, el cual, a pesar del tamaño real de la entrada (usuario +
contraseña), obtendrá un valor más bajo del real cuando la longitud de la
entrada es desproporcionadamente larga. Este fallo solo afecta a sistemas de 32
bits.
La segunda vulnerabilidad se halla en el uso de wildcards en modo FTP.
La función que posee por defecto curl, no detecta el final de una cadena si
esta termina en el carácter '['. Esto permite que se lea memoria fuera de los
límites calculados para la función.
La última se encuentra en código que hace uso de SSL y es similar a la
primera vulnerabilidad comentada. Un error en el calculo del tamaño necesario
para un búfer, hace que este sea inferior al necesario, permitiendo que se lea
fuera de límite. Del mismo modo, este fallo solo se encuentra en sistemas de 32
bits.
Las vulnerabilidades tienen asociados los CVE:
- Desbordamiento de búfer en la autenticación NTLM (CVE-2017-8816)
- Lectura de memoria fuera de límites en modo FTP (CVE-2017-8817)
- Acceso a memoria fuera de límites en SSL (CVE-2017-8818)
Recomendación
- Se recomienda actualizar curl a la última versión publicada por el desarrollador: 7.57.0.
Más información:
- curl security https://curl.haxx.se/docs/security.html
Fuente: Hispasec