Los investigadores de ciberseguridad han señalado una nueva clase de debilidad en el flujo de trabajo de CI/CD que permite a los atacantes secuestrar flujos de trabajo y comprometer las cadenas de suministro de código abierto.
El “patrón crítico explotable” ha recibido el nombre en clave cordyceps por Novee Seguridad. El problema puede permitir a los atacantes el control total de los repositorios en docenas de las organizaciones más grandes del mundo, incluidas Microsoft, Google, Apache y Cloudflare.
“La falla puede ser explotada por cualquier usuario no autenticado”, dijo Elad Meged, ingeniero fundador e investigador de seguridad de Novee Security. “Sin membresía en una organización ni privilegios especiales; una cuenta gratuita es suficiente para falsificar aprobaciones, enviar códigos o robar credenciales”.
El análisis de la empresa de pruebas de penetración de unos 30.000 repositorios de alto impacto ha revelado que más de 300 son totalmente explotables, lo que permite la ejecución de código controlada por atacantes, el robo de credenciales y el compromiso de la cadena de suministro, lo que puede tener graves impactos posteriores.
El núcleo del problema se reduce a configuraciones CI/CD débiles que otorgan a las solicitudes de extracción (PR) más permisos de los que deberían tener. Los PR son propuestas para fusionar cambios de código de una rama en el proyecto principal. Sin embargo, debido a que un RP que no es de confianza puede desencadenar flujos de trabajo privilegiados, puede abrir la puerta a la inyección de comandos, la escalada de privilegios y el compromiso de la cadena de suministro.
“Esta vulnerabilidad de la cadena de suministro radica en las tuberías fundamentales de código abierto con las que funciona toda la industria y en el tipo de problema que se esconde de los escáneres porque, técnicamente, cada pieza individual funciona según lo diseñado”, explicó Novee. “El flujo de trabajo hace lo que se le dijo. La vulnerabilidad existe sólo en la composición: datos que no son confiables cruzan un límite de confianza que nadie auditó”.
En Azure Sentinel de Microsoft, por ejemplo, Novee encontró un comentario sobre un PR que podía ejecutar código de atacante anónimo en el CI de Microsoft y robar una clave de aplicación GitHub que no vence. En un caso similar, un PR en el kit de desarrollo de agentes de IA de Google (“adk-samples”) podría ejecutar código de atacante en el CI de Google para obtener autoridad completa sobre un repositorio de Google Cloud.
Otros hallazgos se enumeran a continuación:
- Apache Doris, donde dos ataques sin clic provocan que un solo comentario en cualquier PR o un PR bifurcado ejecute el código del atacante y extraiga credenciales de CI codificadas o un token con permisos de escritura completos.
- SDK de trabajadores de Cloudflare, donde un PR con un nombre de rama diseñado puede ejecutar comandos arbitrarios en los ejecutores de CI de Cloudflare
- Black de Python Software Foundation, donde una sola solicitud de extracción de cualquier persona podría ejecutar código de atacante en los sistemas de compilación de Black y robar el token de automatización, que luego puede usarse para aprobar solicitudes de extracción.
Tras una divulgación responsable, tanto Microsoft como Google confirmaron el impacto, mientras que Cloudflare, Python y Apache aplicaron refuerzos y parches, respectivamente.
“La naturaleza de la codificación agente significa que estas vulnerabilidades de CI/CD se reproducen persistentemente, a escala, ‘infectando’ repositorios a un ritmo exponencial”, dijo Meged. “Debido a que los usuarios anónimos pueden usarlos para obtener control sobre la cadena de suministro de software, nos gusta pensar que es como un ‘títere’ de los repositorios de algunas de las empresas más grandes del mundo, manipulando silenciosamente sus flujos de trabajo”.