SCW 아이콘
영웅 배경, 구분선 없음
블로그

Análisis profundo: búsqueda y corrección de vulnerabilidades de alta gravedad en libcurl/curl

로라 베르헤이드
2023년 10월 20일 게시
마지막 업데이트: 2026년 3월 6일

Hace poco tiempo, las comunidades de seguridad y desarrollo recibieron un aviso del Proyecto curlsu desarrollador principal, Daniel Stenberg, quien dejó caer la desafortunada misiva que se publicó una nueva versión de curl, distribuida el 11 de octubre, para abordar dos vulnerabilidades de seguridad de alto impacto, una de las cuales describe como «probablemente la peor falla de seguridad de Curl en mucho tiempo».

UN autopsia en el blog de Stenberg, señaló que las versiones afectadas de la biblioteca curl son susceptibles a una vulnerabilidad de desbordamiento de búfer basada en pilas, relacionada con un problema heredado con el protocolo de proxy SOCKS5, en uso desde 2002.

Con su uso como herramienta de línea de comandos que se remonta a 1998, curl es ampliamente considerado como un pilar fundamental de Internet. Con una historia tan larga y un uso tan generalizado, es una dependencia que, si se descubre que es vulnerable, podría tener implicaciones continuas para la seguridad cibernética general.

Este incidente comparte similitudes con el devastador ataque Log4Shell en Log4j, otra dependencia vulnerable que sigue siendo explotada casi dos años después.

>>> ¡Pon a prueba tus conocimientos ahora mismo con nuestra misión curl!

La vulnerabilidad: desbordamiento de búfer

El exploit se detalla en CVE-2023-38545, y afecta a las versiones 7.69.0 de curl y 8.3.0, inclusive. El error principal es una vulnerabilidad de desbordamiento de búfer basada en pilas, y los informes iniciales indican que una explotación exitosa podría provocar un ataque de ejecución remota de código (RCE) más devastador. Si bien se trata de un posible flujo de trabajo para un actor de amenazas, se trata de un caso de uso poco frecuente y no algo dado por hecho.

Quizás la única gracia salvadora para mitigar algunos de los riesgos es que la comunicación maliciosa debe pasar por un proxy SOCKS5, lo cual es un despliegue relativamente poco común.

Al igual que el exploit curl, echemos un vistazo a esta explicación sobre Buffer Overflow:

Cuando se le diga a curl que use un proxy SOCKS5, pasará el nombre de host y hará que el proxy lo resuelva. Sin embargo, si el nombre de host supera el límite de 255 bytes, curl resolverá el nombre de host localmente (como se ve en el siguiente fragmento de código: fuente).

En caso de que el enlace entre el cliente y el proxy sea lento, es posible que el nombre de host largo se copie en el búfer de memoria en lugar de la dirección resuelta (más corta). La parte de memoria asignada solo admite un valor de 255 bytes, por lo que si recibe un valor que supera este límite, los datos desbordarán los límites del búfer de memoria.

>>> Pruébelo usted mismo en este misión jugable!

El desbordamiento de búfer es un poderoso vector de ataque que puede prevalecer en muchos lenguajes de programación antiguos. En este caso concreto, la explotación dio paso a un ataque más grave y perjudicial en forma de RCE en algunos contextos, aunque esta vía sigue siendo poco frecuente e improbable.

¿Cómo se puede mitigar el riesgo de desbordamiento de búfer?

En este momento, la solución de máxima prioridad es aplicar los parches a todas las instancias vulnerables, con un recordatorio de que el uso de curl está tan extendido que puede que no sea necesariamente obvio o anunciado que los componentes de su sistema incluyen la dependencia en uso. En ese caso, es necesaria la auditoría y la posterior aplicación de parches.

En general, los defectos de desbordamiento del búfer se pueden mitigar mediante el uso de un lenguaje que proteja la memoria, como Óxido, sin embargo, como es el caso de un proyecto extenso como curl, no es práctico migrarlo a otro idioma o reescribirlo por capricho. Como Stenberg notas mientras discutíamos la posibilidad de usar y soportar más dependencias escritas en lenguajes seguros para la memoria, o la alternativa de reemplazar gradualmente partes de curl de forma gradual, «... el desarrollo está... actualmente ocurriendo a una velocidad casi glacial y muestra con una claridad dolorosa los desafíos involucrados. Curl permanecerá escrito en C en un futuro próximo». No es una empresa pequeña y las implicaciones de seguridad son inmensas.

Los errores de seguridad pueden ocurrir y ocurrirán, y no siempre es posible confiar en los escáneres y las pruebas para detectar todos los vectores de ataque posibles. Por lo tanto, nuestra mejor arma en la lucha contra estos errores es el compromiso con la concienciación continua en materia de seguridad y el desarrollo de habilidades.

¿Quiere obtener más información sobre cómo escribir código seguro y mitigar los riesgos?

Prueba nuestro Desafío Heap Overflow gratis.

Si estás interesado en obtener más pautas de codificación gratuitas, consulta Entrenador de código seguro para ayudarlo a mantenerse al tanto de las mejores prácticas de codificación segura.

리소스 보기
리소스 보기

Las versiones afectadas de la biblioteca curl son susceptibles a una vulnerabilidad de desbordamiento de búfer basada en pilas, relacionada con un problema heredado con el protocolo de proxy SOCKS5. Descubre cómo encontrar y corregir este tipo de vulnerabilidad con una misión jugable.

더 알고 싶으신가요?

더 알아보세요

Secure Code Warrior 귀사의 조직이 소프트웨어 개발 라이프사이클 전반에 걸쳐 코드를 보호하고 사이버보안을 최우선으로 하는 문화를 조성하도록 Secure Code Warrior . AppSec 관리자, 개발자, CISO 또는 보안 관련 담당자라면 누구든, 저희는 귀사의 조직이 안전하지 않은 코드와 관련된 위험을 줄일 수 있도록 돕습니다.

데모 예약하기
공유하기:
링크드인 브랜드사회적x 로고
저자
로라 베르헤이드
게시일: 2023년 10월 20일

Laura Verheyde는 Secure Code Warrior 의 소프트웨어 개발자로서 취약점을 연구하고 Missions 및 코딩 연구소의 콘텐츠를 제작하는 데 주력하고 있습니다.

공유하기:
링크드인 브랜드사회적x 로고

Hace poco tiempo, las comunidades de seguridad y desarrollo recibieron un aviso del Proyecto curlsu desarrollador principal, Daniel Stenberg, quien dejó caer la desafortunada misiva que se publicó una nueva versión de curl, distribuida el 11 de octubre, para abordar dos vulnerabilidades de seguridad de alto impacto, una de las cuales describe como «probablemente la peor falla de seguridad de Curl en mucho tiempo».

UN autopsia en el blog de Stenberg, señaló que las versiones afectadas de la biblioteca curl son susceptibles a una vulnerabilidad de desbordamiento de búfer basada en pilas, relacionada con un problema heredado con el protocolo de proxy SOCKS5, en uso desde 2002.

Con su uso como herramienta de línea de comandos que se remonta a 1998, curl es ampliamente considerado como un pilar fundamental de Internet. Con una historia tan larga y un uso tan generalizado, es una dependencia que, si se descubre que es vulnerable, podría tener implicaciones continuas para la seguridad cibernética general.

Este incidente comparte similitudes con el devastador ataque Log4Shell en Log4j, otra dependencia vulnerable que sigue siendo explotada casi dos años después.

>>> ¡Pon a prueba tus conocimientos ahora mismo con nuestra misión curl!

La vulnerabilidad: desbordamiento de búfer

El exploit se detalla en CVE-2023-38545, y afecta a las versiones 7.69.0 de curl y 8.3.0, inclusive. El error principal es una vulnerabilidad de desbordamiento de búfer basada en pilas, y los informes iniciales indican que una explotación exitosa podría provocar un ataque de ejecución remota de código (RCE) más devastador. Si bien se trata de un posible flujo de trabajo para un actor de amenazas, se trata de un caso de uso poco frecuente y no algo dado por hecho.

Quizás la única gracia salvadora para mitigar algunos de los riesgos es que la comunicación maliciosa debe pasar por un proxy SOCKS5, lo cual es un despliegue relativamente poco común.

Al igual que el exploit curl, echemos un vistazo a esta explicación sobre Buffer Overflow:

Cuando se le diga a curl que use un proxy SOCKS5, pasará el nombre de host y hará que el proxy lo resuelva. Sin embargo, si el nombre de host supera el límite de 255 bytes, curl resolverá el nombre de host localmente (como se ve en el siguiente fragmento de código: fuente).

En caso de que el enlace entre el cliente y el proxy sea lento, es posible que el nombre de host largo se copie en el búfer de memoria en lugar de la dirección resuelta (más corta). La parte de memoria asignada solo admite un valor de 255 bytes, por lo que si recibe un valor que supera este límite, los datos desbordarán los límites del búfer de memoria.

>>> Pruébelo usted mismo en este misión jugable!

El desbordamiento de búfer es un poderoso vector de ataque que puede prevalecer en muchos lenguajes de programación antiguos. En este caso concreto, la explotación dio paso a un ataque más grave y perjudicial en forma de RCE en algunos contextos, aunque esta vía sigue siendo poco frecuente e improbable.

¿Cómo se puede mitigar el riesgo de desbordamiento de búfer?

En este momento, la solución de máxima prioridad es aplicar los parches a todas las instancias vulnerables, con un recordatorio de que el uso de curl está tan extendido que puede que no sea necesariamente obvio o anunciado que los componentes de su sistema incluyen la dependencia en uso. En ese caso, es necesaria la auditoría y la posterior aplicación de parches.

En general, los defectos de desbordamiento del búfer se pueden mitigar mediante el uso de un lenguaje que proteja la memoria, como Óxido, sin embargo, como es el caso de un proyecto extenso como curl, no es práctico migrarlo a otro idioma o reescribirlo por capricho. Como Stenberg notas mientras discutíamos la posibilidad de usar y soportar más dependencias escritas en lenguajes seguros para la memoria, o la alternativa de reemplazar gradualmente partes de curl de forma gradual, «... el desarrollo está... actualmente ocurriendo a una velocidad casi glacial y muestra con una claridad dolorosa los desafíos involucrados. Curl permanecerá escrito en C en un futuro próximo». No es una empresa pequeña y las implicaciones de seguridad son inmensas.

Los errores de seguridad pueden ocurrir y ocurrirán, y no siempre es posible confiar en los escáneres y las pruebas para detectar todos los vectores de ataque posibles. Por lo tanto, nuestra mejor arma en la lucha contra estos errores es el compromiso con la concienciación continua en materia de seguridad y el desarrollo de habilidades.

¿Quiere obtener más información sobre cómo escribir código seguro y mitigar los riesgos?

Prueba nuestro Desafío Heap Overflow gratis.

Si estás interesado en obtener más pautas de codificación gratuitas, consulta Entrenador de código seguro para ayudarlo a mantenerse al tanto de las mejores prácticas de codificación segura.

리소스 보기
리소스 보기

다음 양식을 작성하여 보고서를 다운로드하십시오.

귀하의 허락을 받아 당사 제품 또는 안전한 암호화 관련 주제에 대한 정보를 보내드리고자 합니다. 귀하의 개인정보는 항상 최대한 신중하게 처리하며, 마케팅 목적으로 타사에 판매하지 않을 것을 약속드립니다.

보내기
scw 성공 아이콘
scw 오류 아이콘
양식을 보내려면 '분석' 쿠키를 활성화하세요. 완료 후에는 언제든지 다시 비활성화해도 됩니다.

Hace poco tiempo, las comunidades de seguridad y desarrollo recibieron un aviso del Proyecto curlsu desarrollador principal, Daniel Stenberg, quien dejó caer la desafortunada misiva que se publicó una nueva versión de curl, distribuida el 11 de octubre, para abordar dos vulnerabilidades de seguridad de alto impacto, una de las cuales describe como «probablemente la peor falla de seguridad de Curl en mucho tiempo».

UN autopsia en el blog de Stenberg, señaló que las versiones afectadas de la biblioteca curl son susceptibles a una vulnerabilidad de desbordamiento de búfer basada en pilas, relacionada con un problema heredado con el protocolo de proxy SOCKS5, en uso desde 2002.

Con su uso como herramienta de línea de comandos que se remonta a 1998, curl es ampliamente considerado como un pilar fundamental de Internet. Con una historia tan larga y un uso tan generalizado, es una dependencia que, si se descubre que es vulnerable, podría tener implicaciones continuas para la seguridad cibernética general.

Este incidente comparte similitudes con el devastador ataque Log4Shell en Log4j, otra dependencia vulnerable que sigue siendo explotada casi dos años después.

>>> ¡Pon a prueba tus conocimientos ahora mismo con nuestra misión curl!

La vulnerabilidad: desbordamiento de búfer

El exploit se detalla en CVE-2023-38545, y afecta a las versiones 7.69.0 de curl y 8.3.0, inclusive. El error principal es una vulnerabilidad de desbordamiento de búfer basada en pilas, y los informes iniciales indican que una explotación exitosa podría provocar un ataque de ejecución remota de código (RCE) más devastador. Si bien se trata de un posible flujo de trabajo para un actor de amenazas, se trata de un caso de uso poco frecuente y no algo dado por hecho.

Quizás la única gracia salvadora para mitigar algunos de los riesgos es que la comunicación maliciosa debe pasar por un proxy SOCKS5, lo cual es un despliegue relativamente poco común.

Al igual que el exploit curl, echemos un vistazo a esta explicación sobre Buffer Overflow:

Cuando se le diga a curl que use un proxy SOCKS5, pasará el nombre de host y hará que el proxy lo resuelva. Sin embargo, si el nombre de host supera el límite de 255 bytes, curl resolverá el nombre de host localmente (como se ve en el siguiente fragmento de código: fuente).

En caso de que el enlace entre el cliente y el proxy sea lento, es posible que el nombre de host largo se copie en el búfer de memoria en lugar de la dirección resuelta (más corta). La parte de memoria asignada solo admite un valor de 255 bytes, por lo que si recibe un valor que supera este límite, los datos desbordarán los límites del búfer de memoria.

>>> Pruébelo usted mismo en este misión jugable!

El desbordamiento de búfer es un poderoso vector de ataque que puede prevalecer en muchos lenguajes de programación antiguos. En este caso concreto, la explotación dio paso a un ataque más grave y perjudicial en forma de RCE en algunos contextos, aunque esta vía sigue siendo poco frecuente e improbable.

¿Cómo se puede mitigar el riesgo de desbordamiento de búfer?

En este momento, la solución de máxima prioridad es aplicar los parches a todas las instancias vulnerables, con un recordatorio de que el uso de curl está tan extendido que puede que no sea necesariamente obvio o anunciado que los componentes de su sistema incluyen la dependencia en uso. En ese caso, es necesaria la auditoría y la posterior aplicación de parches.

En general, los defectos de desbordamiento del búfer se pueden mitigar mediante el uso de un lenguaje que proteja la memoria, como Óxido, sin embargo, como es el caso de un proyecto extenso como curl, no es práctico migrarlo a otro idioma o reescribirlo por capricho. Como Stenberg notas mientras discutíamos la posibilidad de usar y soportar más dependencias escritas en lenguajes seguros para la memoria, o la alternativa de reemplazar gradualmente partes de curl de forma gradual, «... el desarrollo está... actualmente ocurriendo a una velocidad casi glacial y muestra con una claridad dolorosa los desafíos involucrados. Curl permanecerá escrito en C en un futuro próximo». No es una empresa pequeña y las implicaciones de seguridad son inmensas.

Los errores de seguridad pueden ocurrir y ocurrirán, y no siempre es posible confiar en los escáneres y las pruebas para detectar todos los vectores de ataque posibles. Por lo tanto, nuestra mejor arma en la lucha contra estos errores es el compromiso con la concienciación continua en materia de seguridad y el desarrollo de habilidades.

¿Quiere obtener más información sobre cómo escribir código seguro y mitigar los riesgos?

Prueba nuestro Desafío Heap Overflow gratis.

Si estás interesado en obtener más pautas de codificación gratuitas, consulta Entrenador de código seguro para ayudarlo a mantenerse al tanto de las mejores prácticas de codificación segura.

웹 세미나 보기
시작하다
더 알아보세요

아래 링크를 클릭하고 이 자료의 PDF를 다운로드하세요.

Secure Code Warrior 귀사의 조직이 소프트웨어 개발 라이프사이클 전반에 걸쳐 코드를 보호하고 사이버보안을 최우선으로 하는 문화를 조성하도록 Secure Code Warrior . AppSec 관리자, 개발자, CISO 또는 보안 관련 담당자라면 누구든, 저희는 귀사의 조직이 안전하지 않은 코드와 관련된 위험을 줄일 수 있도록 돕습니다.

보고서 보기데모 예약하기
리소스 보기
공유하기:
링크드인 브랜드사회적x 로고
더 알고 싶으신가요?

공유하기:
링크드인 브랜드사회적x 로고
저자
로라 베르헤이드
게시일: 2023년 10월 20일

Laura Verheyde는 Secure Code Warrior 의 소프트웨어 개발자로서 취약점을 연구하고 Missions 및 코딩 연구소의 콘텐츠를 제작하는 데 주력하고 있습니다.

공유하기:
링크드인 브랜드사회적x 로고

Hace poco tiempo, las comunidades de seguridad y desarrollo recibieron un aviso del Proyecto curlsu desarrollador principal, Daniel Stenberg, quien dejó caer la desafortunada misiva que se publicó una nueva versión de curl, distribuida el 11 de octubre, para abordar dos vulnerabilidades de seguridad de alto impacto, una de las cuales describe como «probablemente la peor falla de seguridad de Curl en mucho tiempo».

UN autopsia en el blog de Stenberg, señaló que las versiones afectadas de la biblioteca curl son susceptibles a una vulnerabilidad de desbordamiento de búfer basada en pilas, relacionada con un problema heredado con el protocolo de proxy SOCKS5, en uso desde 2002.

Con su uso como herramienta de línea de comandos que se remonta a 1998, curl es ampliamente considerado como un pilar fundamental de Internet. Con una historia tan larga y un uso tan generalizado, es una dependencia que, si se descubre que es vulnerable, podría tener implicaciones continuas para la seguridad cibernética general.

Este incidente comparte similitudes con el devastador ataque Log4Shell en Log4j, otra dependencia vulnerable que sigue siendo explotada casi dos años después.

>>> ¡Pon a prueba tus conocimientos ahora mismo con nuestra misión curl!

La vulnerabilidad: desbordamiento de búfer

El exploit se detalla en CVE-2023-38545, y afecta a las versiones 7.69.0 de curl y 8.3.0, inclusive. El error principal es una vulnerabilidad de desbordamiento de búfer basada en pilas, y los informes iniciales indican que una explotación exitosa podría provocar un ataque de ejecución remota de código (RCE) más devastador. Si bien se trata de un posible flujo de trabajo para un actor de amenazas, se trata de un caso de uso poco frecuente y no algo dado por hecho.

Quizás la única gracia salvadora para mitigar algunos de los riesgos es que la comunicación maliciosa debe pasar por un proxy SOCKS5, lo cual es un despliegue relativamente poco común.

Al igual que el exploit curl, echemos un vistazo a esta explicación sobre Buffer Overflow:

Cuando se le diga a curl que use un proxy SOCKS5, pasará el nombre de host y hará que el proxy lo resuelva. Sin embargo, si el nombre de host supera el límite de 255 bytes, curl resolverá el nombre de host localmente (como se ve en el siguiente fragmento de código: fuente).

En caso de que el enlace entre el cliente y el proxy sea lento, es posible que el nombre de host largo se copie en el búfer de memoria en lugar de la dirección resuelta (más corta). La parte de memoria asignada solo admite un valor de 255 bytes, por lo que si recibe un valor que supera este límite, los datos desbordarán los límites del búfer de memoria.

>>> Pruébelo usted mismo en este misión jugable!

El desbordamiento de búfer es un poderoso vector de ataque que puede prevalecer en muchos lenguajes de programación antiguos. En este caso concreto, la explotación dio paso a un ataque más grave y perjudicial en forma de RCE en algunos contextos, aunque esta vía sigue siendo poco frecuente e improbable.

¿Cómo se puede mitigar el riesgo de desbordamiento de búfer?

En este momento, la solución de máxima prioridad es aplicar los parches a todas las instancias vulnerables, con un recordatorio de que el uso de curl está tan extendido que puede que no sea necesariamente obvio o anunciado que los componentes de su sistema incluyen la dependencia en uso. En ese caso, es necesaria la auditoría y la posterior aplicación de parches.

En general, los defectos de desbordamiento del búfer se pueden mitigar mediante el uso de un lenguaje que proteja la memoria, como Óxido, sin embargo, como es el caso de un proyecto extenso como curl, no es práctico migrarlo a otro idioma o reescribirlo por capricho. Como Stenberg notas mientras discutíamos la posibilidad de usar y soportar más dependencias escritas en lenguajes seguros para la memoria, o la alternativa de reemplazar gradualmente partes de curl de forma gradual, «... el desarrollo está... actualmente ocurriendo a una velocidad casi glacial y muestra con una claridad dolorosa los desafíos involucrados. Curl permanecerá escrito en C en un futuro próximo». No es una empresa pequeña y las implicaciones de seguridad son inmensas.

Los errores de seguridad pueden ocurrir y ocurrirán, y no siempre es posible confiar en los escáneres y las pruebas para detectar todos los vectores de ataque posibles. Por lo tanto, nuestra mejor arma en la lucha contra estos errores es el compromiso con la concienciación continua en materia de seguridad y el desarrollo de habilidades.

¿Quiere obtener más información sobre cómo escribir código seguro y mitigar los riesgos?

Prueba nuestro Desafío Heap Overflow gratis.

Si estás interesado en obtener más pautas de codificación gratuitas, consulta Entrenador de código seguro para ayudarlo a mantenerse al tanto de las mejores prácticas de codificación segura.

목차

PDF 다운로드
리소스 보기
더 알고 싶으신가요?

더 알아보세요

Secure Code Warrior 귀사의 조직이 소프트웨어 개발 라이프사이클 전반에 걸쳐 코드를 보호하고 사이버보안을 최우선으로 하는 문화를 조성하도록 Secure Code Warrior . AppSec 관리자, 개발자, CISO 또는 보안 관련 담당자라면 누구든, 저희는 귀사의 조직이 안전하지 않은 코드와 관련된 위험을 줄일 수 있도록 돕습니다.

데모 예약하기다운로드
공유하기:
링크드인 브랜드사회적x 로고
자원 센터

시작하기 위한 자료

더 많은 게시물
자원 센터

시작하기 위한 자료

더 많은 게시물