Vulnerabilidad de Ejecución Remota de Código (RCE) en Gemini CLI Expone Pipelines de CI/CD

Google ha emitido un aviso de seguridad y corregido una vulnerabilidad crítica en Gemini CLI que permite a actores de amenazas ejecutar código remoto (RCE) en flujos de trabajo automatizados. El fallo afecta directamente al paquete de npm @google/gemini-cli y a la acción oficial de GitHub google-github-actions/run-gemini-cli. La amenaza es particularmente severa cuando la herramienta se despliega en entornos sin interfaz gráfica (headless), como los servidores de Integración y Despliegue Continuos (CI/CD), donde la IA se utiliza para procesar contenido externo y potencialmente malicioso.


Anatomía del Ataque

De acuerdo con los investigadores que reportaron el fallo a través del Programa de Recompensas de Google, la vulnerabilidad se origina por dos debilidades operativas vinculadas:

  • Confianza Automática e Insegura del Espacio de Trabajo: En versiones anteriores, al ejecutarse en entornos no interactivos (headless), Gemini CLI otorgaba confianza automática al directorio de trabajo actual. La herramienta cargaba configuraciones y variables de entorno desde el directorio oculto .gemini/ sin requerir aprobación explícita. Un atacante externo podría introducir archivos manipulados en ese directorio (por ejemplo, enviando un Pull Request malicioso a un repositorio público); cuando el pipeline automatizado invocaba Gemini CLI para revisar el código, este procesaba la configuración inyectada, logrando la ejecución de comandos en el servidor.
  • Evasión de Listas Blancas (Modo YOLO): La segunda falla radica en un bypass de los controles de seguridad cuando se utiliza el modo –yolo. La CLI no aplicaba de manera estricta las restricciones granulares definidas en el archivo de políticas ~/.gemini/settings.json. Si un flujo de trabajo permitía la ejecución de comandos (ej. run_shell_command), la política se volvía demasiado permisiva. Un atacante podría abusar de esto utilizando técnicas de Inyección de Prompts (Prompt Injection) en el texto enviado a la IA para desencadenar comandos destructivos a nivel de sistema.

Impacto
  • Secuestro de la Cadena de Suministro: El compromiso del pipeline CI/CD otorga al atacante un acceso privilegiado al núcleo de desarrollo de la organización.
  • Exfiltración de Secretos CI/CD: El acceso RCE permite el robo silencioso de tokens de GitHub, variables de entorno, claves de despliegue en la nube (AWS, GCP, Azure) y llaves de firma de código, lo que podría derivar en ataques de mayor escala contra los clientes finales de la empresa.

Recomendaciones y Mitigación

La actualización lanzada por Google incluye un cambio en la arquitectura de seguridad que rompe la compatibilidad previa (breaking change). Los equipos de DevSecOps deben aplicar las siguientes medidas de forma expedita:

  • Actualización Urgente: Actualizar de inmediato el paquete npm @google/gemini-cli y la acción google-github-actions/run-gemini-cli a sus versiones parcheadas. Es imperativo revisar y modificar cualquier archivo .yaml de GitHub Actions que tenga ancladas (pinned) versiones antiguas y vulnerables de la herramienta.
  • Configuración Explícita (Breaking Change): A partir de ahora, el modo headless ya no confiará automáticamente en las carpetas del espacio de trabajo. Las organizaciones que operen con flujos de trabajo estrictamente internos y confiables, y que necesiten cargar configuraciones locales, deberán habilitar esta función declarando explícitamente la variable de entorno: GEMINI_TRUST_WORKSPACE: ‘true’.
  • Endurecimiento de Entornos de IA: Para los flujos de trabajo que sí procesan contenido generado por usuarios, Pull Requests externos o prompts no confiables, se prohíbe el uso de la variable de confianza mencionada en el punto anterior. Se debe auditar rigurosamente la configuración de ejecución de comandos en la CLI y aplicar el principio de menor privilegio.

Related Post