Vulnerabilidad en la libreria Libcurl/Curl


El pasado lunes 09 de octubre del 2023, se hizo llegar un boletín de seguridad sobre las vulnerabilidades encontradas en la librería “Libcurl” y la herramienta de comandos “curl”, en ese momento los desarrolladores aún no liberaban información sobre la manera de explotación de las mismas. Hoy en día se dio a conocer la manera de aprovechar dichas vulnerabilidades y la forma de mitigarlas.

Esta vulnerabilidad es un desbordamiento del búfer basado en los nombres de host de los servidores proxy SOCKS5 a través del indicador de línea de comandos. Esto sucede debido a que curl cambia a un modo de resolución local si el nombre es demasiado largo. Sin embargo, existen algunas advertencias/requisitos para hacer posible la explotación:
• El atacante debe poder apuntar curl a un servidor malicioso que controle.
• Curl debe estar usando un proxy SOCKS5 usando el modo de resolución de proxy
• Curl debe configurarse para seguir automáticamente las redirecciones
• Un desbordamiento solo es posible en aplicaciones que no configuran  CURLOPT_BUFFERSIZE  cuando usan libcurl, o lo configuran en un valor inferior a 65541. Dado que curl establece  CURLOPT_BUFFERSIZE  en 100 kB de forma predeterminada, no es vulnerable en su estado predeterminado
• El protocolo de enlace SOCKS5 para desencadenar el error de la variable local debe ser "lo suficientemente lento" para desencadenar el error de la variable local. Esto no está definido, sin embargo, afirman que "la latencia típica del servidor probablemente sea lo suficientemente lenta"

Debido a estas advertencias, las protecciones de memoria modernas disponibles y el hecho de que los atacantes primero deben encontrar una superficie de ataque que exponga curls de manera vulnerable, no creemos que haya una explotación masiva generalizada. Sin embargo, al tratarse de un desbordamiento de buffer, es de suma importancia mitigar la vulnerabilidad debido a que la comunidad no tardara en obtener una prueba de concepto con el fin de ejecutar código arbitrario en los servidores/equipos víctima.

Identificación de la vulnerabilidad.
Para identificar qué versiones de curl ha instalado (ya sea independientes o incluidas en otras aplicaciones), hemos recopilado algunos métodos que le ayudarán.
A continuación se muestran ejemplos de cómo identificar binarios curl en sus sistemas.

  • Linux/Mac OS
find / -name curl 2>/dev/null -exec echo "Found: {}" \; -exec {} --version \;
  • Windows
Get-ChildItem -Path C:\ -Recurse -ErrorAction SilentlyContinue -Filter curl.exe | ForEach-Object { Write-Host "Found: $($_.FullName)"; & $_.FullName --version }

Versiones Afectadas

Las versiones afectadas están entre 7.69.0 y 8.3.0 inclusive.

Recomendaciones

Es de suma importancia aplicar los paquetes de actualización liberados lo antes posible. Si la utilería está empaquetada en un paquete de software y es dependiente para el correcto funcionamiento del mismo, es de suma importancia contactar al proveedor para obtener el paquete de actualización.

Referencias

El nombre es requerido.
El email es requerido.
El email no es válido.
El comentario es requerido.
El captcha es requerido.



Comentarios