Desagradable error descubierto en la ampliamente utilizada utilidad de Linux curl, y los parches ya han sido implementados.

Incómodo error descubierto en la popular utilidad de Linux curl, ¡y los parches ya han sido implementados!

agujero de seguridad abstracto

En su mayoría, los usuarios de Linux comunes no saben qué es curl. Aunque los programadores y administradores de sistemas conocen bien la utilidad.

Este comando de shell y su biblioteca asociada, libcurl, se utilizan para transferir datos a través de todos los protocolos de red que has escuchado alguna vez, y se utiliza en computadoras de escritorio, servidores, nubes, automóviles, televisores, enrutadores y prácticamente en todos los dispositivos de Internet de las cosas (IoT). Los desarrolladores de Curl estiman que se utiliza en más de veinte mil millones de instancias. Y ahora hay un posible problema de seguridad grave en él, CVE-2023-38545.

También: Google Cloud, AWS y Cloudflare reportan los ataques DDoS más grandes de la historia

¿Qué tan grave? El desarrollador principal de Curl, Daniel Stenberg, escribió en una publicación de blog que es “el peor problema de seguridad encontrado en curl en mucho tiempo.” Él debería saberlo.

Los expertos en seguridad están de acuerdo. Esto, en una palabra, es malo.

Como advirtió Saeed Abbasi, Gerente de Producto de la Unidad de Investigación de Amenazas de Qualys:

Las organizaciones deben actuar rápidamente para inventariar, escanear y actualizar todos los sistemas que utilizan curl y libcurl. En particular, la gravedad de la vulnerabilidad de alto riesgo exige una atención inmediata y cautelosa para salvaguardar las aplicaciones interconectadas y basadas en web, asegurando que la funcionalidad de transferencia de datos rica que curl y libcurl proporcionan permanezca intacta y segura.

Específicamente, el agujero de seguridad puede ser invocado cuando alguien está usando el protocolo de proxy SOCKS5. Este protocolo bastante simple establece una comunicación de red a través de un “intermediario” dedicado. Se utiliza cuando se comunica a través de Tor, el software de internet de código abierto utilizado para permitir la comunicación anónima y acceder a internet desde dentro de organizaciones y empresas de forma privada. Algunas redes privadas virtuales, como NordVPN, Private Internet Access y Hide.Me, lo ofrecen para permitir a sus usuarios evitar bloqueos de contenido en internet y asegurar su anonimato.

En una conversación en Mastodon, Steinberg dijo: “Quizás lo más realista es que un usuario de Tor (que normalmente usa SOCKS5) yendo a un sitio HTTPS que ha sido comprometido o similar” es el más probable de caer en este agujero de seguridad.

También: 7 cosas que incluso los nuevos usuarios de Linux pueden hacer para asegurar mejor el sistema operativo

CVE-2023-38545 es un agujero de desbordamiento de montón de memoria. Posiblemente se pueda explotar para ejecución remota de código. Ya existen pruebas de concepto que muestran cómo se podría realizar un ataque utilizando el agujero de curl.

El agujero de seguridad fue introducido en febrero 2020 y afecta a las versiones de libcurl desde 7.69.0 hasta, inclusive, la 8.3.0. 

Steinberg está avergonzado por su error: 

Al leer el código ahora, es imposible no ver el error. Sí, realmente duele tener que aceptar el hecho de que cometí este error sin darme cuenta y que la falla luego permaneció indetectada en el código durante 1315 días. Me disculpo. Soy solo un humano. … A posteriori, enviar un desbordamiento de montón de memoria en un código instalado en más de veinte mil millones de instancias no es una experiencia que recomendaría.

No todos piensan que es tan grave. Bill Demirkapi, miembro del Centro de Respuesta a la Seguridad y Mitigaciones de Microsoft, tuiteó en Twitter, también conocido como X, que “El ‘peor problema de seguridad encontrado en curl en mucho tiempo’ solo es accesible si la víctima está utilizando un servidor proxy SOCKS5 y se conecta a un servidor falso o está bajo un ataque de MitM [Hombre en el Medio]?, Voy a volver a dormir.” 

Menos sarcásticamente, la empresa de cadena de suministro de software JFrog observó: 

Se puede asumir con buena confianza que esta vulnerabilidad será explotada en la naturaleza para la ejecución remota de código, con exploits más sofisticados siendo desarrollados. Sin embargo, el conjunto de condiciones previas necesarias para que una máquina sea vulnerable (ver sección anterior) es más restrictivo de lo que se pensaba inicialmente. Por lo tanto, creemos que la gran mayoría de los usuarios de curl no se verán afectados por esta vulnerabilidad.

Para ser precisos, las condiciones previas necesarias para desencadenar el problema en un fuego de seguridad de curl son:

  1. La solicitud de curl se realiza a través de socks5h.

  2. El búfer de negociación de la máquina de estado de curl es más pequeño que ~65k.

  3. La respuesta de “hola” del servidor SOCKS se retrasa.

  4. El atacante establece un nombre de host de destino final más grande que el búfer de negociación.

Esas son muchas condiciones previas. 

Aún así, dado el uso extenso de Curl en diversos sistemas operativos, aplicaciones y dispositivos IoT, el anuncio temprano del problema por parte de Steinberg fue un movimiento estratégico inteligente. Proveyó a las organizaciones suficiente tiempo para auditar sus sistemas, identificar todas las instancias de curl y libcurl en uso y desarrollar un plan integral para la aplicación de parches en toda la empresa.

También: <a href=”/?s=Nuevo malware descubierto para Android ha infectado miles de dispositivos</a>

El proyecto curl no se detuvo allí; la información sobre los fallos se compartió simultáneamente con los desarrolladores de varias distribuciones de Linux, Unix y similares a Unix. Este enfoque colaborativo aseguró que los parches y paquetes actualizados estuvieran listos antes del lanzamiento oficial de curl v8.4.0.

Por lo tanto, tanto yo como el proyecto curl recomendamos encarecidamente a los usuarios que actualicen a la versión 8.4.0 de curl/libcurl o apliquen parches a versiones anteriores para mitigar los riesgos asociados con estas vulnerabilidades. 

Dado que libcurl/curl es un componente predeterminado en muchas distribuciones de Linux e integrado en numerosas imágenes de contenedores, los usuarios de Linux deben estar atentos y buscar las versiones proporcionadas por estos proveedores. La mayoría de los principales distribuidores de Linux ya han lanzado los parches.