Mastodon Mastodon Mastodon Mastodon

Cómo prompt injection permitió a agentes IA escalar privilegios en Google ADK

Foto del autor

CyberSecureFox Editorial Team

Publicado:

Los investigadores de la empresa Pillar Security identificaron dos vulnerabilidades en la automatización del repositorio de GitHub de Google Agent Development Kit (ADK) para Python, que permitían a un atacante externo, mediante prompt injection, obligar a un bot de bajo privilegio a iniciar un flujo de trabajo privilegiado. El primer escenario daba la posibilidad de falsificar el historial de revisión de código; el segundo, de ejecutar código arbitrario en el runner de CI y extraer secretos, incluidos tokens de acceso y credenciales de servicios en la nube. Según los investigadores, los problemas no afectaban al paquete ADK de Python en sí, sino exclusivamente a la configuración de los workflows del repositorio. Google ya ha corregido las vulnerabilidades eliminando tres workflows problemáticos.

Problema de arquitectura: falta de aislamiento entre agentes

La raíz de ambas vulnerabilidades estaba en la arquitectura de la automatización del repositorio. Según el investigador Dan Lisichkin, en el repositorio de ADK operaban dos clases de agentes de IA. Los bots de bajo privilegio procesaban issues y pull requests públicos, mientras que los agentes privilegiados —accesibles solo para los maintainers— podían ejecutar comandos, modificar código y trabajar con secretos. El error crítico consistía en que estos dos grupos no estaban adecuadamente aislados entre sí: la acción de un bot de bajo privilegio podía iniciar la ejecución de un flujo de trabajo privilegiado.

Primer escenario: falsificación de reviews mediante prompt injection

En el primer escenario de ataque descrito, un atacante podía abrir un pull request que contuviera simultáneamente una corrección legítima y código malicioso, y luego crear un segundo pull request con una prompt injection. El agente de revisión inicial procesaba esta solicitud y publicaba en la discusión un comando de servicio con la mención @gemini-cli. Dado que el mensaje procedía de una cuenta de confianza, desencadenaba automáticamente un flujo de trabajo privilegiado.

Según los investigadores, la explotación satisfactoria de este vector permitía:

  • Extraer un token de GitHub con permisos ampliados
  • Manipular comentarios, issues y pull requests
  • Rechazar reviews ajenos y aprobar cambios arbitrarios
  • Ejecutar Gemini para cualquier pull request
  • Crear un historial de revisión de código completamente falso, con la simulación de una solicitud de review por parte de una persona y la aprobación por parte de Gemini

Un matiz importante: incluso si la explotación tenía éxito, un maintainer debía aceptar manualmente y fusionar el pull request malicioso con la rama principal. Así, este escenario requería un elemento adicional de ingeniería social: el historial de revisión falso servía precisamente para aumentar la confianza en el código malicioso.

Segundo escenario: ejecución de código arbitrario a través de adk-bot

Un vector de ataque más peligroso afectaba a un flujo de trabajo basado en Antigravity SDK. Un agente público analizaba automáticamente los nuevos issues y dejaba comentarios en nombre de adk-bot, que tenía el rol de collaborator. Mediante una prompt injection en el texto del issue, un atacante podía obligar al bot a publicar el comando /adk-issue-fix. Dado que el comando procedía de una cuenta con el rol de collaborator, superaba la verificación y ponía en marcha a un agente privilegiado para corregir el código.

El agente que se ejecutaba trabajaba en un entorno con acceso al token del bot, la clave de API de Google y las credenciales de una cuenta de servicio de Google Cloud. Según señalan los investigadores, demostraron la ejecución de código arbitrario en el runner de CI y la extracción del personal access token (PAT) utilizado por el bot.

Merece especial atención el método de evasión de las restricciones. El workflow intentaba limitar el conjunto de comandos disponibles, permitiendo solo gh y git. Sin embargo, el agente conservaba la capacidad de escribir archivos en disco. Los investigadores mostraron que era posible guardar la carga maliciosa en un archivo, indicar un directorio no estándar con hooks de Git y ejecutar código arbitrario mediante el comando permitido git, un ejemplo clásico de evasión de una lista de comandos permitidos a través de mecanismos colaterales.

Evaluación del impacto

Estado de explotación: existe un PoC público. Los investigadores subrayan que no encontraron versiones comprometidas de ADK ni indicios de explotación de estas vulnerabilidades en ataques reales. No obstante, las posibles consecuencias eran significativas: la compromisión de la infraestructura CI/CD de un gran proyecto open source de Google podría haber llevado a la introducción de código malicioso en la base de código utilizada por un gran número de desarrolladores.

Este caso es representativo para toda la industria: a medida que los agentes de IA se extienden en los procesos de desarrollo, las fronteras de privilegios entre ellos se convierten en una nueva superficie de ataque. Prompt injection deja de ser una amenaza teórica para convertirse en una herramienta práctica de escalada de privilegios en los pipelines de CI/CD.

Medidas de mitigación y recomendaciones

Los ingenieros de Google ya han reforzado la protección del repositorio y eliminado tres workflows problemáticos: issue-analyze.yml, issue-fix.yml y pr-analyze.yml. Los usuarios de ADK como paquete de Python no necesitan realizar acciones adicionales: las vulnerabilidades no afectaban al código de la biblioteca en sí.

Para los equipos que utilizan agentes de IA en sus propios pipelines de CI/CD, el investigador Dan Lisichkin formuló las siguientes recomendaciones:

  • Separe las cuentas: cada bot debe tener su propia cuenta con los permisos mínimos necesarios
  • Restrinja los tokens: reduzca los permisos de los tokens al mínimo necesario para la tarea concreta
  • No confíe automáticamente en los comandos: que un comando provenga de un bot no lo convierte en confiable; se requiere una validación independiente
  • Aísle los niveles de privilegios: las acciones de agentes de bajo privilegio no deben tener la posibilidad de iniciar workflows privilegiados
  • Audite las capacidades colaterales: limitar la lista de comandos es inútil si el agente puede escribir archivos y usar mecanismos como los hooks de Git para la evasión

Las vulnerabilidades descubiertas ponen de manifiesto un problema fundamental: los modelos de confianza diseñados para la interacción de personas con sistemas CI/CD no tienen en cuenta las particularidades de los agentes de IA, vulnerables a prompt injection. Los equipos que incorporan automatización basada en IA en los procesos de desarrollo deberían auditar las fronteras de privilegios entre agentes y asegurarse de que ningún bot accesible públicamente pueda —directamente o a través de una cadena de llamadas— iniciar operaciones privilegiadas.


CyberSecureFox Editorial Team

El equipo editorial de CyberSecureFox cubre noticias de ciberseguridad, vulnerabilidades, campañas de malware, actividad de ransomware, AI security, cloud security y security advisories de proveedores. Los materiales se preparan a partir de official advisories, datos de CVE/NVD, alertas de CISA, publicaciones de proveedores e informes públicos de investigadores. Los artículos se revisan antes de su publicación y se actualizan cuando aparece nueva información.

Deja un comentario

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.