2 puntos por GN⁺ 2025-11-26 | 1 comentarios | Compartir por WhatsApp
  • 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
    1. Agent Manager está diseñado para ejecutar múltiples agentes de forma simultánea, lo que dificulta la supervisión en tiempo real
    2. 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

 
GN⁺ 2025-11-26
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

    • (C) no solo incluye casos en los que el agente se comunica intencionalmente con el exterior, sino cualquier situación en la que el usuario pueda ver el texto generado
      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
    • Incluso con A y B, un secreto puede terminar en manos de un atacante
      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

    • Esto reconoce que estos ataques ya son un secreto a voces en la industria
      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

    • Antigravity intentó defenderse con una lista blanca de dominios y restricciones de archivos, pero pasó por alto los servicios que permiten redirecciones
      El atacante aprovechó eso, y el LLM evadió la protección de archivos a través del shell del sistema
    • El MCP de búsqueda web en sí está bien, pero el verdadero vector de ataque es el programa que controla el modelo de IA y el MCP
    • Copilot exige el consentimiento explícito del usuario cuando va a acceder a una URL no confiable
      El problema de Antigravity fue permitir redirects abiertos sin un proceso de consentimiento así
    • El filtrado de URL confiables es algo que Google debería poder hacer mejor que nadie
      Tiene muchísimos datos de búsqueda, y ojalá eso ayude a prevenir prompt injection
    • Merece críticas el hecho de que la configuración por defecto empujara a autorizar automáticamente todos los comandos
  • 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í

    • En donde trabajo, la IA agente no tiene ningún acceso a secretos
      Desde hace décadas ni siquiera se les ha permitido a las personas acceder a secretos
      Sería impensable subir un archivo .env a git
      Aun 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
    • Las empresas también están empezando a reconocer el riesgo
      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), y
    en 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

    • Pero esto no es un bug del LLM en sí, sino un defecto de diseño del software que usa el LLM
      El LLM no ejecuta código por sí solo, pero si se integra de forma descuidada, como en Antigravity, aparecen vulnerabilidades
    • El problema clave es que un tercero puede abusar de esto como vector de ataque
  • 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

    • Antes hubo una época en la que era posible ejecutar código mediante modelines de vim
      Es una historia que se repitió desde CVE-2002-1377 hasta CVE-2019-12735
      Me pregunto si Antigravity terminará recibiendo un CVE
    • Entre el modelo y el internet siempre debería haber un firewall
      Las herramientas que manejan al mismo tiempo modelos de lenguaje e internet externo no deberían tener acceso a datos sensibles
    • También existe la posibilidad de que estos LLM aprendan por sí mismos cómo acceder a computadoras remotas o hackearlas
    • La mezcla entre comandos y datos no es un problema exclusivo de los LLM
      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

    • Sigue igual, y hay varios problemas más
      Documenté algunos en mi blog