Mostrando entradas con la etiqueta libcurl. Mostrar todas las entradas
Mostrando entradas con la etiqueta libcurl. Mostrar todas las entradas

sábado, 12 de agosto de 2017

cURL y libcurl afectados por varias vulnerabilidades

Se ha publicado una nueva versión de la librería libcurl y de la propia herramienta curl, para corregir 3 vulnerabilidades que podrían permitir a un atacante local o remoto obtener información sensible o causar una denegación de servicio


cURL es un cliente de transferencia de archivos multiprotocolo que también tiene una versión en formato librería (libcurl) para poder ser integrado en productos de terceros. Es una de las herramientas de referencia en su ámbito, y es utilizada por millones de usuarios en diversos sistemas operativos, utilidades y aplicaciones webs. En su página web aparece una lista incompleta de los productos comerciales que usan libcurl.

Son tres las vulnerabilidades que se han corregido en esta nueva versión:

  • La vulnerabilidad identificada como CVE-2017-1000101, afecta únicamente a la versión de línea de comandos (no a la librería). Básicamente es un error al parsear una URL con formato incorrecto, que podría permitir la lectura de una pequeña cantidad de memoria del proceso (o al menos, detener el proceso). El escenario de ataque más claro es un atacante local que introduce una URL especialmente manipulada en una aplicación que usa libcurl
  • Otra vulnerabilidad, ésta identificada como CVE-2017-1000099afecta a ambas versiones, línea de comandos y libcurl. El error se produce por utilizar por error un trozo de memoria no inicializado cuando se realiza una petición a una URL con protocolo file:// (archivos locales), lo que confunde al programa y puede terminar devolviendo al usuario un trozo extra inesperado de memoria dinámica en una pseudo-cabecera HTTP (cURL devuelve los metadatos del archivo como cabeceras HTTP). El escenario de ataque sería muy similar al de la vulnerabilidad comentada anteriormente.
  • Y finalmente, el CVE-2017-1000100 también afecta a ambas versiones, línea de comandos y libcurl. Este error sí que tiene bastante más peligro, y recuerda un poco a Heartbleed, aunque en este caso sería revelación de información del cliente hacia el servidor, y no al contrario. El problema es que las URL's con protocolo TFTP que son demasiado largas son truncadas por cURL cuando se almacenan en memoria, pero cURL usa la longitud previa al truncamiento cuando quiere transmitir información al servidor. Por lo que termina saliendo de los límites de memoria asignado y envía más de lo debido. Debido a la estructura de memoria dinámica no se puede saber qué hay exactamente después, pero podría ser cualquier cosa. El ataque más simple sería, ante una petición al servidor maligno, que éste redirigiese a una URL especialmente manipulada con protocolo TFTP apuntando al mismo servidor (para recoger la memoria filtrada).

La nueva versión publicada es la 7.55.0, no es una versión publicada expresamente para corregir vulnerabilidades (es decir, resuelve otros fallos no relacionados con la seguridad y añade nuevas funcionalidades), y está disponible desde https://curl.haxx.se/download.html. También se han publicado parches individuales para solucionar los diferentes fallos de seguridad.


Carlos Ledesma

domingo, 18 de junio de 2017

Actualización de seguridad para cURL y libcurl

Se ha publicado un boletín de seguridad del proyecto cURL para alertar de una vulnerabilidad en la librería libcurl y en la propia herramienta curl, que podría permitir a un atacante ejecutar código arbitrario en los sistemas afectados.

cURL y libcurl son una herramienta y librería para descargar ficheros mediante la sintaxis URL a través de diferentes protocolos: DICT, FILE, FTP, FTPS, Gopher, HTTP, HTTPS, IMAP, IMAPS, LDAP, LDAPS, POP3, POP3S, RTMP, RTSP, SCP, SFTP, SMTP, SMTPS, Telnet y TFTP, y utilizada por millones de usuarios en diversos sistemas operativos, utilidades y aplicaciones webs.

El problema, con CVE-2017-9502, reside en un desbordamiento de búfer en el tratamiento de URLs 'file:' específicamente creadas y que podría permitir la ejecución de código arbitrario. El vulnerabilidad se da cuando una URL 'file:' sin el '//' que sigue a los dos puntos, o bien los sistemas configurados para usar 'file' como protocolo por defecto para las URLs que no especifican el protocolo y la ruta dada comienza con una letra de unidad (por ejemplo, 'C'). Dada la naturaleza de la vulnerabilidad se ven afectados los sistemas basados en DOS y Windows.

Se ven afectadas las versiones libcurl 7.53.0 hasta la 7.54.0 (incluidas).

Se ha publicado la versión 7.54.1 que soluciona esta vulnerabilidad y otros problemas no relacionados con la seguridad.
Disponible desde:
También se ha publicado un parche para evitar la vulnerabilidad:

Más Información:

cURL and libcurl

URL file scheme drive letter buffer overflow


Antonio Ropero

Twitter: @aropero

lunes, 24 de abril de 2017

Actualización de seguridad para cURL y libcurl

Se ha publicado un boletín de seguridad del proyecto cURL para alertar de una vulnerabilidad en la librería libcurl y en la propia herramienta curl, que podría permitir a un atacante evitar controles de seguridad.

cURL y libcurl son una herramienta y librería para descargar ficheros mediante la sintaxis URL a través de diferentes protocolos: DICT, FILE, FTP, FTPS, Gopher, HTTP, HTTPS, IMAP, IMAPS, LDAP, LDAPS, POP3, POP3S, RTMP, RTSP, SCP, SFTP, SMTP, SMTPS, Telnet y TFTP, y utilizada por millones de usuarios en diversos sistemas operativos, utilidades y aplicaciones webs.

El problema, con CVE-2017-7468, reside en que libcurl intenta reanudar una sesión TLS incluso si el certificado del cliente ha cambiado. Esto es inaceptable, ya que por especificación un servidor puede omitir la comprobación de certificado de cliente en la reanudación y, en su lugar, puede utilizar la identidad antigua establecida por el certificado anterior (o por ningún certificado).
Se trata de una regresión y es idéntico a la vulnerabilidad (CVE-2016-5419) que ya fue solucionada en agosto de 2016, pero afecta a diferentes versiones.

Se ven afectadas las versiones libcurl 7.52.0 hasta la 7.53.1 (incluidas).

Se ha publicado la versión 7.54.0 que soluciona esta vulnerabilidad y otros problemas no relacionados con la seguridad.
Disponible desde:
También se ha publicado un parche para evitar la vulnerabilidad:

Más Información:

cURL and libcurl

TLS session resumption client cert bypass (again)

una-al-dia (08/08/2016) Actualización de seguridad para cURL y libcurl


Antonio Ropero
Twitter: @aropero



viernes, 23 de diciembre de 2016

Desbordamiento de búfer en la librería libcurl

Se ha publicado un boletín de seguridad del proyecto cURL para alertar de una vulnerabilidad en la librería libcurl, que podría permitir a un atacante remoto ejecutar código arbitrario en los sistemas afectados.

cURL es una librería y herramienta para descargar ficheros mediante la sintaxis URL a través de diferentes protocolos: DICT, FILE, FTP, FTPS, Gopher, HTTP, HTTPS, IMAP, IMAPS, LDAP, LDAPS, POP3, POP3S, RTMP, RTSP, SCP, SFTP, SMTP, SMTPS, Telnet y TFTP, y utilizada por millones de usuarios en diversos sistemas operativos, utilidades y aplicaciones webs.

La vulnerabilidad, con CVE-2016-9586, reside en un desbordamiento de búfer en la implementación de las funciones printf() de la libería libcurl cuando se produce una salida de un punto flotante de gran tamaño. El fallo se produce con salidas de conversión de más de 255 bytes.El fallo se debe a que en las conversiones de punto flotante se usan funciones de sistema sin las adecuadas comprobaciones.

La vulnerabilidad afecta desde la versión 7.1 hasta la 7.51.0 incluida, únicamente en la librería. Esto es la utilidad cURL no se ve afectada. Se deben tener en cuenta las aplicaciones de terceros que incluyen en su implementación la librería de forma interna.

Se ha publicado la versión 7.52.0 que soluciona totalmente la vulnerabilidad.
También existe un parche específico:

Más información:

printf floating point buffer overflow



Antonio Ropero

Twitter: @aropero

domingo, 6 de noviembre de 2016

Múltiples vulnerabilidades en cURL y libcurl

Se ha publicado una nueva versión de la librería libcurl y de la propia herramienta curl, para corregir hasta 11 vulnerabilidades que podrían permitir a un atacante modificar cookies en el sistema, reutilizar sesiones, obtener información sensible o incluso ejecutar código arbitrario.

cURL y libcurl son una herramienta y librería para descargar ficheros mediante la sintaxis URL a través de diferentes protocolos: DICT, FILE, FTP, FTPS, Gopher, HTTP, HTTPS, IMAP, IMAPS, LDAP, LDAPS, POP3, POP3S, RTMP, RTSP, SCP, SFTP, SMTP, SMTPS, Telnet y TFTP, y utilizada por millones de usuarios en diversos sistemas operativos, utilidades y aplicaciones webs.

En esta ocasión la lista de problemas corregidos es muy diversa:

Un servidor http malicioso podrá inyectar cookies para dominios arbitrarios si el estado de la cookie está en un archivo cookie jar (CVE-2016-8615). Al reutilizar una conexión, curl realiza comparaciones del nombre de usuario y contraseña sin tener en cuenta las mayúsculas y minúsculas, esto podrá permitir reutilizar una conexión si un atacante conoce una versión de las credenciales sin diferenciar las mayúsculas y minúsculas (CVE-2016-8616).

En sistemas 32 bits, una escritura fuera de límites debido a una multiplicación sin comprobar (CVE-2016-8617). Vulnerabilidades por doble liberación en curl_maprintf (CVE-2016-8618) y en krb5 code (CVE-2016-8619). Lectura y escritura fuera de límites en la característica "globbing" de la herramienta curl (CVE-2016-8620). Lectura fuera de límites en curl_getdate (CVE-2016-8621).

Desbordamiento de búfer en el tratamiento de URLs (CVE-2016-8622). Uso de memoria después de liberarla a través de shared cookies (CVE-2016-8623). Tratamiento unadecuado de URLs con '#' (CVE-2016-8624). Por último, cuando curl se compila con libidn para tratar nombres de dominio internacionales (International Domain Names, IDNA) utiliza el estándar IDNA 2003 para la resolución DNS, aunque el IDNA 2008 es el estándar moderno y actualizado. Esto puede hacer que curl emplee un host erróneo (CVE-2016-8625).

Se ha publicado la versión 7.51.0 que soluciona estas vulnerabilidades y otros problemas no relacionados con fallos de seguridad.
Disponible desde:
También se han publicado parches individuales para evitar las diferentes vulnerabilidades.

Más Información:

cURL and libcurl

Fixed in 7.51.0 - November 2 2016



Antonio Ropero
Twitter: @aropero


sábado, 10 de septiembre de 2016

Actualización de seguridad para cURL y libcurl

Se ha publicado un boletín de seguridad del proyecto cURL para alertar de una vulnerabilidad en la librería libcurl y en la propia herramienta curl, que podría permitir a un atacante evitar controles de seguridad.

cURL y libcurl son una herramienta y librería para descargar ficheros mediante la sintaxis URL a través de diferentes protocolos: DICT, FILE, FTP, FTPS, Gopher, HTTP, HTTPS, IMAP, IMAPS, LDAP, LDAPS, POP3, POP3S, RTMP, RTSP, SCP, SFTP, SMTP, SMTPS, Telnet y TFTP, y utilizada por millones de usuarios en diversos sistemas operativos, utilidades y aplicaciones webs.

El problema, con CVE-2016-7141, reside en que libcurl puede reutilizar certificados de cliente si se uso un certificado desde un archivo en una conexión TLS, pero no hay un certificado asignado conexiones TLS posteriores.

Los síntomas son similares a la vulnerabilidad con CVE-2016-5420 (reutilización de una conexión con un certificado cliente erróneo), corregida en la anterior versión de cURL. La nueva vulnerabilidad se debe a un detalle en la implementación del backend de NSS en libcurl.

Se ven afectados los sistemas curl y libcurl generados con el soporte de NSS (Network Security Services) y solo si la librería libnsspem.so está disponible en tiempo de ejecución.Se ven afectadas las versiones libcurl 7.19.6 hasta la 7.50.1 (incluida).

Se ha publicado la versión 7.50.2 que soluciona estas vulnerabilidades.
Disponible desde:
También se ha publicado un parche para evitar la vulnerabilidad:

Más Información:

cURL and libcurl

Incorrect reuse of client certificates

una-al-dia (08/08/2016) Actualización de seguridad para cURL y libcurl



Antonio Ropero
Twitter: @aropero

lunes, 8 de agosto de 2016

Actualización de seguridad para cURL y libcurl

Se han publicado tres boletines de seguridad del proyecto cURL para alertar de vulnerabilidades en la librería libcurl y en la propia herramienta curl, que podrían permitir a un atacante evitar restricciones de seguridad y comprometer los sistemas afectados.

cURL y libcurl son una herramienta y librería para descargar ficheros mediante la sintaxis URL a través de diferentes protocolos: DICT, FILE, FTP, FTPS, Gopher, HTTP, HTTPS, IMAP, IMAPS, LDAP, LDAPS, POP3, POP3S, RTMP, RTSP, SCP, SFTP, SMTP, SMTPS, Telnet y TFTP, y utilizada por millones de usuarios en diversos sistemas operativos, utilidades y aplicaciones webs.

El primer problema, con CVE-2016-5419, reside en que libcurl intenta reanudar una sesión TLS incluso si el certificado del cliente ha cambiado. Por otra parte, con CVE-2016-5420, otro problema relacionado con el tratamiento de sesiones TLS. libcurl soporta la reutilización de conexiones establecidas para peticiones posteriores, sin embargo no tiene en cuenta los certificados de cliente al reutilizar las conexiones TLS.

Estos problemas afectan a todas las versiones de curl y libcurl que soporten TLS (SSL/TLS para CVE-2016-5420) y certificados de cliente. Se ven afectadas las versiones libcurl 7.1 hasta la 7.50.0 (incluida).

Por último, con CVE-2016-5421, una vulnerabilidad de uso de memoria después de liberarla relacionado con la función "curl_easy_perform()". Este fallo no afecta a la herramienta de línea de comandos cURL. Se ven afectadas las versiones libcurl 7.32.0 hasta la 7.50.0 (incluida).

Se ha publicado la versión 7.50.1 que soluciona estas vulnerabilidades. Disponible desde:
También se han publicado partes individuales para cada una de las vulnerabilidades:

Más Información:

cURL and libcurl

TLS session resumption client cert bypass

Re-using connections with wrong client cert

use of connection struct after free



Antonio Ropero

Twitter: @aropero