La empresa de seguridad Novee ha revelado que Cordyceps es una clase de vulnerabilidades explotables de CI/CD en repositorios de código abierto que permitieron a los atacantes robar credenciales, enviar código malicioso y comprometer operaciones en algunas de las organizaciones de software más grandes del mundo.
Estas vulnerabilidades se han encontrado en repositorios pertenecientes a Microsoft, Google, Apache, Cloudflare y la Python Software Foundation, a quienes las empresas también atribuyen haberlas corregido.
¿Qué es la vulnerabilidad de Cordyceps?
La empresa de seguridad Novee ha descubierto una nueva y peligrosa clase de vulnerabilidades en canalizaciones CI/CD que denomina “Cordyceps”. El nombre “Cordyceps” proviene de un hongo parásito que se apodera de su hospedador; esta falla permite que cualquiera con una cuenta gratuita de GitHub tome el control de proyectos populares de código abierto.
Las vulnerabilidades se descubrieron en repositorios pertenecientes a Microsoft, Google, Apache, Cloudflare y la Python Software Foundation. Un solo escaneo de 30.000 repositorios reveló 300 cadenas de ataque completamente explotables.
Los atacantes pueden robar credenciales, inyectar código malicioso y comprometer cadenas de suministro de software mediante estas vulnerabilidades. Los problemas se han corregido, pero los investigadores advierten que los asistentes de codificación con IA seguirán reproduciéndolas en millones de repositorios.
Los flujos de trabajo de GitHub Actions gestionan tareas importantes como ejecutar pruebas, compilar software y publicar versiones, pero a menudo se tratan como simples archivos de configuración en lugar de código crítico para la seguridad.
La cadena de ataque normalmente comienza cuando un externo, que puede ser cualquiera con una cuenta gratuita de GitHub, envía una solicitud de extracción o deja un comentario en un repositorio público. Luego se activa un flujo de trabajo de bajo privilegio que acepta la entrada del externo como si fuera datos confiables.
A partir de ahí, la salida se dirige a un segundo flujo de trabajo que se ejecuta con permisos elevados. Este segundo flujo de trabajo podría contener tokens de autenticación del proveedor de la nube, credenciales del registro de paquetes o claves de firma. Y en este punto, el atacante puede robar tokens que no caducan o comprometer de forma permanente el repositorio.
Según investigadores de seguridad, cada paso individual en estas cadenas puede superar una auditoría de seguridad por sí solo. La vulnerabilidad solo aparece cuando alguien rastrea la ruta de datos no confiables a través de toda la secuencia de traspasos entre flujos de trabajo.
¿Qué grandes empresas se vieron afectadas por la vulnerabilidad?
Novee encontró y reportó vulnerabilidades confirmadas en algunas de las organizaciones tecnológicas más grandes del mundo.
El Microsoft Azure Sentinel, por ejemplo, contenía un comentario en una solicitud de extracción que podía desencadenar la ejecución de código del atacante en la infraestructura de CI de Microsoft y robar una clave de GitHub App que no caduca. Esta clave habría otorgado acceso de escritura persistente al contenido de detección de seguridad que Microsoft distribuye a los espacios de trabajo de Sentinel para clientes.
El repositorio Google’s AI Agent Development Kit, con más de 9.200 estrellas en GitHub, tenía un fallo en el que una única solicitud de extracción podía permitir que un atacante obtuviera el nivel más alto de permisos (roles/owner) en el proyecto de Google Cloud asociado.
En la base de datos de analítica Doris de Apache, los investigadores encontraron dos rutas de ataque de “cero clic”. Una permitía comentar en cualquier solicitud de extracción para robar credenciales de CI hardcodeadas, mientras que la otra permitía que una solicitud de extracción bifurcada robara un token con permisos de escritura total sobre código, paquetes y páginas.
El kit de desarrollo de Cloudflare’s Workers, construido en torno a la cadena de herramientas de la CLI de Wrangler, era vulnerable a la ejecución arbitraria de comandos desencadenada por un nombre de rama especialmente elaborado.
El formateador de código Black de la Python Software Foundation, que tiene más de 130 millones de descargas, tenía un fallo en el que cualquier solicitud de extracción podía robar el token del bot de automatización del proyecto, que luego podría aprobar solicitudes de extracción adicionales.
Novee confirmó a Dark Reading que ninguno de estos patrones de flujo de trabajo fue explotado antes de aplicar los parches.
Meged recomienda que los CISO traten los archivos de flujo de trabajo de CI/CD como código crítico para la seguridad.
Las mentes más inteligentes del mundo cripto ya leen nuestro boletín. ¿Te unes?
