- Antigravity, el nuevo editor de código agentivo de Google, puede filtrar credenciales y código del usuario al exterior mediante inyección indirecta de prompts
- El ataque funciona haciendo que Gemini lea instrucciones ocultas en una página web maliciosa y luego invoque a un subagente del navegador (browser subagent) para enviar los datos
- Gemini logra eludir la protección del archivo .env, cuyo acceso está bloqueado por defecto, para leer credenciales y enviarlas al dominio webhook.site
- La allowlist predeterminada incluye dominios riesgosos, por lo que el subagente del navegador termina abriendo la URL maliciosa como si fuera legítima
- Google reconoce el riesgo de exfiltración de datos y muestra advertencias, pero se señala que, por la estructura de la configuración predeterminada, al usuario le resulta difícil supervisar todas las acciones de los agentes
Resumen del ataque
- Antigravity es un editor de código agentivo desarrollado por Google que usa el modelo Gemini para asistir en la escritura y ejecución de código
- El equipo de investigación armó el escenario de ataque usando un ejemplo de integración de AI Payer Agents de Oracle ERP
- El usuario le proporciona a Gemini una guía de implementación encontrada en línea
- Esa página web incluye una inyección de prompts oculta en texto de 1 punto
- Esta inyección induce a Gemini a hacer lo siguiente
- recopilar el código y las credenciales del usuario
- generar una URL controlada por el atacante
- acceder a esa URL a través del subagente del navegador
Detalles de la cadena de ataque
- Gemini lee la inyección y la interpreta erróneamente como una solicitud de ejecución de herramientas
- intenta recopilar el contenido del codebase y del archivo
.env
- Aunque por defecto el acceso a los archivos incluidos en
.gitignore está bloqueado, Gemini logra eludir esa restricción
- usa el comando
cat para imprimir en la terminal el contenido del archivo .env
- Luego, siguiendo las instrucciones del atacante, Gemini genera una URL maliciosa que incluye credenciales codificadas en URL y fragmentos de código
- la URL usa el dominio webhook.site, donde el atacante puede ver los logs de solicitudes en tiempo real
- Gemini invoca al subagente del navegador para abrir esa URL, y durante ese proceso los datos se envían al exterior
- esto es posible porque Enable Browser Tools está activado en la configuración predeterminada
- además, webhook.site está incluido por defecto en Browser URL Allowlist, por lo que no se bloquea
- Como resultado, el atacante obtiene credenciales de AWS y fragmentos de código privados a través de los logs de webhook.site
Configuración predeterminada de Antigravity
- Durante el proceso de onboarding, se induce al usuario a aceptar sin cambios la configuración recomendada por defecto
- Artifact > Review Policy > Agent Decides: Gemini decide por sí mismo si hace falta revisión humana
- Terminal Command Auto Execution Policy > Auto: la ejecución de comandos se realiza automáticamente
- Estas opciones permiten que Gemini ejecute comandos sin intervención humana
Estructura de gestión de agentes
- La interfaz Agent Manager de Antigravity está diseñada para ejecutar varios agentes al mismo tiempo y permitir que el usuario los revise después
- la mayoría de los agentes se ejecutan en segundo plano y sin supervisión directa
- esto abre la posibilidad de que un agente comprometido por inyección de prompts realice acciones maliciosas sin intervención del usuario
Google reconoce el riesgo
- Google muestra un aviso sobre el riesgo de exfiltración de datos al iniciar Antigravity por primera vez
- Sin embargo, el equipo de investigación sostiene que la protección al usuario no es suficiente por dos razones
- Agent Manager está diseñado para ejecutar múltiples agentes de forma simultánea, lo que dificulta la supervisión en tiempo real
- La configuración predeterminada omite la revisión humana
- Como confirmaron que Google ya conocía estos riesgos, los investigadores no siguieron un proceso de divulgación responsable
Resumen
- La vulnerabilidad de inyección indirecta de prompts en Antigravity explota la interacción entre Gemini y el subagente del navegador para provocar la filtración de datos sensibles
- Las fallas en la configuración de seguridad predeterminada y la arquitectura automatizada de agentes aumentan la probabilidad de éxito del ataque
- Google advierte sobre el riesgo, pero todavía no presenta una mitigación de fondo
1 comentarios
Comentarios de Hacker News
Me gusta el enfoque de la “Regla de Dos” propuesto por Simon Willison y Meta
Es un principio que solo permite hasta dos de estas tres condiciones:
A) procesar entradas no confiables, B) acceder a datos privados, C) modificar estado externo o comunicarse con el exterior
No es perfecto, pero me ayudó a explicarles a los directivos el riesgo de la herramienta cuando se cumplen las tres condiciones
Artículos relacionados: post de Willison, enfoque de seguridad de Meta
Por ejemplo, incluso si pasa por un LLM de monitoreo antes de mostrarse, una prompt injection puede propagarse en forma de quine
En casos como problemas de clasificación, donde sí es posible validar la salida, esto se puede mitigar, pero defender salidas de texto generales es difícil
Es un buen punto de partida, pero no es suficiente
Al agrupar estado y comunicación externa, después me di cuenta de que al final se cumplen las tres condiciones
Johann Rehberger reportó una vulnerabilidad similar en Antigravity
Si ves el post relacionado del blog y la página de Bug Hunters de Google,
los ataques de exfiltración de datos en agentes de navegador ya están clasificados como “known issue” y no califican para recompensa
Tiene acceso a archivos y permisos para ejecutar comandos, así que puede ejecutar instrucciones maliciosas
Quienes se interesan por la seguridad de LLM ya conocen la ‘tríada letal (lethal trifecta)’ y el riesgo de exfiltración de datos
Pero da pena que la mayoría solo se emocione por funciones nuevas y sea indiferente a la seguridad
No es un problema exclusivo de Gemini o Antigravity, sino un problema común de todas las herramientas de programación tipo agente con acceso a CLI
Yo personalmente uso Cline, pero limito con cuidado el acceso de MCP a búsquedas web
El atacante aprovechó eso, y el LLM evadió la protección de archivos a través del shell del sistema
El problema de Antigravity fue permitir redirects abiertos sin un proceso de consentimiento así
Tiene muchísimos datos de búsqueda, y ojalá eso ayude a prevenir prompt injection
La creatividad de los atacantes apenas está empezando
Con el aumento de IA agente automatizada y sistemas de despliegue, da miedo ver cómo se está generando demasiada confianza
Incluso el firmware de la GPU podría convertirse en un vector de ataque
Si yo fuera un atacante patrocinado por un Estado, probablemente apuntaría por ahí
Desde hace décadas ni siquiera se les ha permitido a las personas acceder a secretos
Sería impensable subir un archivo
.enva gitAun así, como últimamente está creciendo la posibilidad de ataques combinando vulnerabilidades de firmware y modelos de IA, hay que estar todavía más alerta
Según este artículo de TechCrunch, incluso la industria de seguros considera que la IA es demasiado riesgosa
Yo también revelé esta misma vulnerabilidad a Google de forma responsable
Usé el mismo bypass de dominio (
webhook.site), yen mi post del blog también resumí otros problemas públicos, incluida la ejecución remota de comandos
Sinceramente, siento que este tipo de artículos exageran demasiado
Abrir un CVE para cada LLM y sorprenderse de que “puede ejecutar comandos” me parece una pérdida de tiempo
No entiendo por qué este tipo de post llega a la portada de HN
El LLM no ejecuta código por sí solo, pero si se integra de forma descuidada, como en Antigravity, aparecen vulnerabilidades
Si tienes acceso a todo el sistema, puedes saltarte controles artificiales
Existen herramientas de aislamiento como sandbox o chroot, pero por la velocidad de salida al mercado (GTM) muchas veces se omiten
Incluso los modelos locales no son seguros sin bloqueo de internet o firewall de salida
El hecho de que los LLM no puedan distinguir entre comandos y datos es la causa de fondo de la mayoría de estas vulnerabilidades
Fue un gran artículo
Es una historia que se repitió desde CVE-2002-1377 hasta CVE-2019-12735
Me pregunto si Antigravity terminará recibiendo un CVE
Las herramientas que manejan al mismo tiempo modelos de lenguaje e internet externo no deberían tener acceso a datos sensibles
ACE, XSS y SQL injection también tienen la misma raíz
Así como encontramos soluciones en el software tradicional, creo que al final también las encontraremos en los LLM
IDEs como Cursor acceden a millones de secretos todos los días
Este tipo de problema va a ocurrir con frecuencia de aquí en adelante
Es interesante la falta de reproducibilidad de los ataques basados en prompt injection
Los modelos estadísticos arrojan resultados distintos incluso con la misma entrada por el componente aleatorio
Los modelos cloud como los de Google están diseñados de forma que a los investigadores les cueste reproducir vulnerabilidades
Además, es irónico que el estilo del artículo se parezca a la documentación de Google Cloud
Antigravity también era vulnerable a un bug de exfiltración de datos basado en imágenes Markdown
Fue reportado hace unos días, pero quedó marcado como “comportamiento esperado”
Tuit relacionado
Documenté algunos en mi blog