“CodeQLEAKED: Ataque a la cadena de suministro de GitHub permite ejecución de código mediante repositorios de CodeQL”

“CodeQLEAKED: Ataque a la cadena de suministro de GitHub permite ejecución de código mediante repositorios de CodeQL”

Vulnerabilidad crítica en GitHub CodeQL: Riesgo de ejecución remota de código

Una vulnerabilidad significativa fue descubierta en las acciones de CodeQL de GitHub, herramienta esencial para el análisis estático de código en proyectos de desarrollo. Este fallo de seguridad, identificado como CVE-2024-29745, podría haber permitido a atacantes ejecutar código malicioso en los flujos de trabajo de integración continua/despliegue continuo (CI/CD) de los repositorios afectados.

Detalles técnicos de la vulnerabilidad

El problema radicaba en cómo CodeQL manejaba las dependencias durante la fase de construcción (build) del análisis. Específicamente:

  • Las acciones de CodeQL utilizaban un contenedor Docker predeterminado para ejecutar el análisis.
  • Este contenedor descargaba e instalaba paquetes del sistema operativo sin verificación adecuada de integridad.
  • Un atacante podía manipular estas descargas mediante ataques Man-in-the-Middle (MITM) o comprometiendo los repositorios de paquetes.

El vector de ataque aprovechaba que el proceso de construcción tenía privilegios elevados dentro del runner de GitHub Actions, permitiendo potencialmente la ejecución de código arbitrario con los mismos permisos que el flujo de trabajo.

Impacto potencial

De haberse explotado, esta vulnerabilidad podría haber tenido consecuencias graves:

  • Compromiso de secretos almacenados en repositorios (tokens de acceso, credenciales).
  • Manipulación del código fuente durante el proceso de construcción.
  • Inserción de backdoors en artefactos generados.
  • Cadena de suministro comprometida al afectar dependencias posteriores.

Mitigaciones implementadas por GitHub

GitHub respondió rápidamente con las siguientes medidas:

  • Implementación de verificación de firmas para todos los paquetes descargados durante el análisis.
  • Restricción de privilegios durante la fase de construcción.
  • Actualización obligatoria a versiones seguras de CodeQL.
  • Notificación a todos los usuarios afectados.

Recomendaciones para desarrolladores

Para proteger sus entornos de desarrollo, se recomienda:

  • Actualizar inmediatamente todas las instancias de CodeQL a la versión 2.22.4 o superior.
  • Revisar los logs de ejecución de GitHub Actions en busca de actividades sospechosas.
  • Rotar cualquier secreto que pudiera haber estado expuesto.
  • Implementar políticas de mínimo privilegio para los runners de CI/CD.
  • Considerar el uso de acciones pinneadas por hash SHA-256 en lugar de versiones.

Lecciones aprendidas

Este incidente destaca varios aspectos críticos de seguridad en el desarrollo moderno:

  • La importancia de la verificación de integridad en todas las etapas de la cadena de suministro.
  • Los riesgos inherentes a los contenedores y entornos de construcción con privilegios elevados.
  • La necesidad de monitoreo continuo incluso en herramientas de seguridad como CodeQL.

Para más detalles técnicos sobre esta vulnerabilidad, consulta la Fuente original.

Comentarios

Aún no hay comentarios. ¿Por qué no comienzas el debate?

Deja una respuesta