Git trasformato in una trappola: sette agenti AI possono eseguire codice dai repository
Vulnerabilidades

Imagen ilustrativa generada con IA

Git convertido en una trampa: siete agentes de IA pueden ejecutar código desde repositorios

Siete agentes IA ejecutan código arbitrario por core.fsmonitor de Git al analizar repositorios maliciosos. Conoce productos afectados y parches.

Texto generado por inteligencia artificial, publicado sin revisión humana. Transparencia IA

Ocho vulnerabilidades en herramientas de desarrollo asistido

El 2 de septiembre de 2026 salió a la luz una clase de vulnerabilidades que afecta a siete agentes de IA para el desarrollo de software desde la línea de comandos. En determinadas condiciones, un repositorio preparado por un atacante puede inducir a estas herramientas a ejecutar comandos arbitrarios en el host.

Se identificaron ocho fallos en total en goose, Codex, Claude Code, Hermes Agent, Qwen Code, Grok Build y Cursor. El problema no depende de prompts maliciosos, jailbreaks del modelo ni permisos concedidos a las herramientas de IA. La ejecución se produce cuando el agente invoca automáticamente Git para reconstruir el contexto del proyecto.

El comando del atacante se ejecuta con los privilegios del usuario local, fuera del sandbox del agente y sin solicitar confirmación. Por tanto, puede leer, modificar o eliminar archivos, utilizar las credenciales de la cuenta y acceder a los secretos presentes en las variables de entorno, incluidas las posibles claves de API.

En algunos productos, el payload se ejecuta antes de que el usuario marque el workspace como confiable. En otros, se activa antes de la autenticación, al pulsar la primera tecla o incluso antes de que el agente contacte con el modelo de lenguaje.

No se han observado ataques que hayan explotado estas vulnerabilidades. Además, ninguno de los CVE analizados figura en el catálogo Known Exploited Vulnerabilities de CISA, por lo que no existe una fecha límite federal de actualización asociada.

El comando oculto dentro de .git/config

El principal vector de ataque es core.fsmonitor, una opción legítima de Git diseñada para acelerar la detección de archivos modificados. Su valor puede indicar un comando externo que Git ejecuta durante determinadas operaciones sobre el índice.

Un repositorio malicioso puede contener una configuración similar:

[core]
    fsmonitor = <comando>

La línea se encuentra en el archivo local .git/config. Cuando un agente ejecuta en segundo plano operaciones como git status o git diff, Git lee la configuración y puede iniciar el comando especificado por el atacante.

El modelo de IA no interviene en la cadena. El fallo surge de la interacción entre una función muy flexible de Git y la automatización introducida por los asistentes de programación.

Sin embargo, el repositorio debe llegar a la víctima con el directorio .git intacto. Entre los posibles canales se incluyen archivos comprimidos, carpetas sincronizadas, unidades compartidas, memorias USB, volúmenes montados, repositorios anidados y checkouts generados por pipelines de CI.

Un git clone normal no conserva la configuración local maliciosa de la forma necesaria para este ataque. Por tanto, el mayor riesgo afecta a los proyectos recibidos como directorios completos o extraídos de archivos comprimidos, no a los repositorios clonados mediante el flujo habitual de Git.

Las barreras de confianza del agente llegan demasiado tarde. En Claude Code y Hermes Agent, el comando puede ejecutarse antes de aceptar el workspace; en Qwen Code, puede iniciarse antes de la autenticación. Grok Build puede activarlo al pulsar la primera tecla, mientras que goose puede ejecutarlo antes de contactar con el modelo.

Versiones vulnerables y actualizaciones disponibles

El estado de las correcciones varía considerablemente entre los siete productos.

Producto Versiones afectadas o verificadas Corrección y estado
goose Todas las versiones anteriores a la 1.44.0; prueba en la 1.41.0 Corregida en la 1.44.0
Codex CLI De la 0.102.0 a la 0.130.0 Corregida en la 0.131.0
Codex Desktop macOS De la 260202.0859 a la 26.513.31313 Corregida en la 26.519.22136
Codex Desktop Windows De la 26.304.38 a la 26.513.40821 Corregida en la 26.519.21041
Codex Microsoft Store De la 26.304.38.0 a la 26.513.4821.0 Corregida en la 26.519.2081.0
Claude Code, ruta FSMonitor 2.1.193, verificada como vulnerable Corregida en la 2.1.196
Claude Code, ultrareview Confirmada en la 2.1.252 Estado de las versiones posteriores desconocido
Hermes Agent 0.18.2 y 0.21.0 No había corrección disponible en las pruebas reportadas
Qwen Code 0.19.6 y 0.22.3 No había corrección disponible
Grok Build 0.2.93 y 1.0.13 No había corrección disponible
Cursor CLI Versiones exactas no comunicadas Corrección disponible, versión no indicada

En goose, identificado como CVE-2026-72718, el comando goose review utiliza el binario de Git instalado en el sistema. Las funciones encargadas de recopilar el contexto ejecutan git diff --name-only HEAD y git diff HEAD sin neutralizar core.fsmonitor.

La vulnerabilidad está clasificada como High, con una puntuación CVSS v4 de 7,0/10 y categoría CWE-94. El aviso GHSA-r5pp-p5r8-466r, publicado el 24 de julio, atribuye el descubrimiento a Francisco Rosales, de Manifold Security.

OpenAI publicó tres CVE para Codex, procedentes de tres grupos de investigación independientes. En el caso de CVE-2026-19592, el proceso auxiliar se ejecuta fuera del sandbox y sin aprobación. El fallo tiene una puntuación CVSS 3.1 de 7,3. Aunque la versión actual de Codex CLI verificada era la 0.152.1, las instalaciones bloqueadas por debajo de la 0.131.0 siguen expuestas.

Claude Code tiene dos rutas distintas

Claude Code requiere una evaluación independiente porque se identificaron dos mecanismos de ataque.

El primero aprovecha core.fsmonitor: podía reproducirse en la versión 2.1.193 y se corrigió en la 2.1.196. El informe se presentó el 26 de junio y el parche llegó el 29 de junio, pero el caso se cerró como duplicado de otro informe recibido ese mismo día.

La segunda ruta pasa por claude ultrareview y utiliza otra clave de configuración de Git, que no se ha divulgado. El ataque funcionaba en la 2.1.252; la comparación más reciente se realizó con la 2.1.258, sin determinar si una versión posterior había eliminado el problema.

Anthropic ya había abordado comportamientos previos a la confianza. La versión 2.0.34 modificó el inicio para impedir un git status antes de aprobar el workspace, pero un comportamiento relacionado reapareció en la 2.1.193.

También CVE-2026-55607, con una puntuación CVSS de 8,8, está relacionada con la ejecución de Git FSMonitor durante operaciones sobre worktrees. No se ha publicado un aviso específico que cubra las dos nuevas rutas descritas para Claude Code.

Cómo comprobar un repositorio antes de abrirlo

La primera medida consiste en tratar como no confiables las carpetas de proyecto recibidas con .git ya presente. Antes de iniciar un agente de IA, se puede comprobar el valor local de FSMonitor:

git config --get core.fsmonitor

La configuración global puede comprobarse con:

git config --global --list | grep fsmonitor

También es necesario inspeccionar manualmente .git/config y buscar, como mínimo:

  • core.fsmonitor;
  • core.hooksPath;
  • attr.tree;
  • filtros clean;
  • filtros process.

La presencia de estas opciones no demuestra automáticamente que exista un ataque. Sin embargo, es necesario analizar su valor, especialmente si invoca scripts, intérpretes, binarios o rutas externas al repositorio.

Si FSMonitor no es necesario, puede desactivarse globalmente:

git config --global core.fsmonitor false

Por su parte, los desarrolladores de agentes deberían neutralizar explícitamente las configuraciones controlables por el repositorio durante cada invocación automatizada de Git. Para FSMonitor, una llamada defensiva podría adoptar esta forma:

git -c core.fsmonitor=false status

Sin embargo, limitarse a esta opción no es suficiente. Los hooks, atributos y filtros de Git también pueden modificar el comportamiento de los procesos automatizados y deben incluirse en el modelo de seguridad.

Parches inmediatos, pero algunos productos siguen expuestos

Los usuarios de goose deben instalar al menos la 1.44.0. Codex CLI debe actualizarse como mínimo a la 0.131.0, mientras que las aplicaciones de escritorio deben alcanzar las compilaciones corregidas específicas para macOS, Windows o Microsoft Store.

En Claude Code, la 2.1.196 cierra la ruta core.fsmonitor, pero no permite considerar resuelto también el vector ultrareview. Hermes Agent, Qwen Code y Grok Build seguían siendo vulnerables en las versiones más recientes sometidas a pruebas. En el caso de Cursor, hay una corrección disponible, pero no se conocen las compilaciones afectadas.

La técnica no es nueva: problemas similares se corrigieron en Visual Studio Code antes de la 1.63.1 con CVE-2021-43891, y en los IDE de JetBrains antes de la 2021.3.1 con CVE-2022-24346. Ambos tienen una puntuación CVSS de 7,8.

En los últimos 90 días, CISA también ha incluido en KEV vulnerabilidades relacionadas con Anthropic, Microsoft y JetBrains: CVE-2019-1068 el 26 de agosto de 2026; CVE-2026-33824 y CVE-2026-55040 el 18 de agosto de 2026; CVE-2026-68820 el 11 de agosto de 2026; CVE-2026-63077 el 5 de agosto de 2026; y CVE-2026-50522 el 22 de julio de 2026. En cambio, los fallos de los agentes de IA relacionados con Git descritos aquí no figuran en el catálogo.

La ausencia en KEV y la falta de compromisos documentados no eliminan el riesgo técnico. Basta con abrir la carpeta equivocada con un agente vulnerable: el código puede ejecutarse antes de que cualquier control de IA o diálogo de confianza tenga la oportunidad de intervenir.

Lee también

Fuentes

Este artículo es una reelaboración original basada en las siguientes fuentes.

CVE tratadas en este artículo

Temas relacionadosvulnerabilidad Gitcore.fsmonitoragentes IAciberseguridadCodexClaude CodeCVE
Volver al inicio