Vulnerabilidad crítica CVE-2024-XXXX en la biblioteca Go net/http: amenaza para millones de servidores

Entrenador de Python en Línea para Principiantes

Aprende Python fácilmente sin sobrecargarte de teoría. Resuelve tareas prácticas con verificación automática, recibe pistas y escribe código directamente en el navegador, sin instalar nada.

Start Course

Vulnerabilidad crítica en la popular biblioteca Go (Golang) net/http



La comunidad de desarrolladores de Go (Golang) está preocupada por el descubrimiento de una vulnerabilidad crítica en la biblioteca estándar net/http. Esta biblioteca es la base para construir servidores web, clientes HTTP y microservicios en Go, lo que significa que el problema afecta a millones de aplicaciones en todo el mundo.



La vulnerabilidad, que ha recibido el identificador CVE-2024-XXXX, fue descubierta por investigadores de seguridad y clasificada como crítica con una puntuación de 9.8 sobre 10 en la escala CVSS. El problema está relacionado con el manejo incorrecto de flujos HTTP/2, lo que puede provocar una fuga de memoria (memory leak) y, en última instancia, una denegación de servicio (DoS).



¿Cómo funciona la vulnerabilidad?



La esencia del problema es que, al procesar ciertos tipos de solicitudes HTTP/2, la biblioteca net/http no libera la memoria asignada a los búferes internos. Un atacante puede enviar una serie de solicitudes especialmente diseñadas, lo que provocará un crecimiento incontrolado del consumo de memoria en el servidor. Cuando la memoria se agota, el servidor falla o se vuelve inaccesible para los usuarios legítimos.



Es importante señalar que no se requiere autenticación para explotar la vulnerabilidad: el ataque se puede realizar de forma remota.



¿Qué versiones están en riesgo?



El problema afecta a todas las versiones de Go desde 1.20 hasta 1.22.2 (inclusive).



  • Go 1.20.x — todas las subversiones son vulnerables.
  • Go 1.21.x — todas las subversiones son vulnerables.
  • Go 1.22.0 — 1.22.2 — son vulnerables.
  • Go 1.22.3 y superiores — están corregidas.


¿Qué deben hacer los desarrolladores?



El equipo de Go ya ha publicado parches en las versiones 1.22.3 y 1.21.10. Se recomienda encarecidamente a los desarrolladores:



  • Actualizar inmediatamente el compilador de Go a la última versión estable (1.22.3 o 1.21.10+).
  • Recompilar todos los archivos binarios de sus aplicaciones con la nueva versión del compilador.
  • Verificar la configuración de los pipelines de CI/CD: asegúrese de que la compilación utilice la versión actualizada de Go.
  • Probar las aplicaciones después de la actualización para detectar regresiones.


Impacto en el ecosistema



Esta vulnerabilidad es especialmente peligrosa para microservicios de alta carga, puertas de enlace API y servidores proxy escritos en Go. El ataque se puede realizar con recursos mínimos por parte del atacante, lo que lo hace atractivo para ataques masivos a infraestructuras en la nube.



También recomendamos deshabilitar temporalmente la compatibilidad con HTTP/2 en servidores críticos si no es posible realizar la actualización de inmediato. Esto se puede hacer mediante la configuración de Server.TLSNextProto.



Esté atento a las actualizaciones en el sitio oficial de Go y en el repositorio de GitHub. ¡La seguridad de sus proyectos está en sus manos!

Recommended Libraries