
Los investigadores de Wiz descubrieron que las fallas en seis populares asistentes de codificación de IA podrían permitir que proyectos de código atrapados tomaran silenciosamente el control de las computadoras de los desarrolladores. El asistente pide permiso para editar un archivo que parece inofensivo, pero la escritura termina en un archivo confidencial.
Las herramientas afectadas son Amazon Q Developer, Claude Code de Anthropic, Augment, Cursor, Google Antigravity y Windsurf. Wiz llamó a este patrón GhostApproval y lo publicó el 8 de julio.
Tres de los seis han enviado versiones fijas y dos no han enviado versiones fijas. Anthropic cuestiona esto como un error. Las que corren mayor riesgo son las herramientas que modifican archivos antes de evaluarlos.
Cómo funciona el ataque
Este ataque explota una característica antigua de Unix llamada enlaces simbólicos, que el Asistente no puede verificar. El enlace simbólico apunta silenciosamente a otro archivo en algún otro lugar del disco, por lo que escribir en él en realidad escribe en el destino.
Wiz ha creado un repositorio malicioso con un enlace simbólico llamado project_settings.json que en realidad apunta al archivo de inicio de sesión SSH de la víctima ~/.ssh/authorized_keys. El archivo README del repositorio indica al asistente que agregue una «línea» a project_settings.json que es la clave SSH del atacante disfrazada de una configuración benigna.

Cuando le pide al agente que «configure un espacio de trabajo» o «siga el README», el agente escribe la clave directamente en su archivo de inicio de sesión a través de un enlace simbólico. A partir de ahí, si la máquina ejecuta un servicio SSH al que el atacante puede acceder, el atacante puede iniciar sesión sin contraseña.
La segunda versión de este truco escribe en el archivo de inicio del shell ~/.zshrc. Esto será ejecutado por su shell la próxima vez que abra la terminal, por lo que no se requiere SSH. No hay pruebas de que se hayan utilizado en ataques reales. Wiz lo presenta como investigación.
Aparece contenido incorrecto en el cuadro de aprobación
El truco del enlace simbólico existe desde hace décadas. Los enlaces simbólicos son sólo para distribución. El verdadero fracaso es el cuadro de aprobación. GhostApproval tiene esa casilla.
Después de probar el código de Claude, Wiz se da cuenta de que el agente ya ha determinado el objetivo real a través de su propia inferencia y que project_settings.json es literalmente «en realidad un archivo de configuración zsh». Sin embargo, el cuadro mostrado al desarrollador especificaba solo archivos benignos.
Cuando creo que estoy editando un archivo de configuración local y hago clic en (aceptar), la escritura llega a mi archivo de inicio de shell o clave SSH. Wiz llama a esto eludir el consentimiento informado. En otras palabras, los humanos todavía están en el circuito, pero el circuito les muestra que están equivocados.
Algunas herramientas son aún más nefastas. Se saltan completamente la puerta, por lo que no hay momento para intervenir. Windsurf escribe el archivo en el disco antes de que aparezcan los botones (Aceptar) y (Rechazar), por lo que el único mensaje es el botón (Deshacer) y las teclas ya están en su lugar.
Augment no muestra ningún cuadro de diálogo, pero Wiz lo demostró silenciosamente leyendo el archivo de credenciales de AWS fuera del proyecto. Sin embargo, las herramientas que aún le avisan no son necesariamente seguras. El mensaje simplemente muestra el nombre de archivo incorrecto.
¿Qué herramientas se ven afectadas?
Wiz informó este problema a los seis proveedores. Sus respectivas posiciones al momento de la publicación son las siguientes.
Solución alternativa del estado de la herramienta Se corrigió en la actualización de Amazon Q DeveloperLanguage Server 1.69.0 (CVE-2026-12958). Se instala automáticamente para la mayoría de los usuarios y se instala cuando recarga el IDE. CursorFixed en v3.0 (CVE-2026-50549) Actualización desde Extension Manager. Google AntigravityFixed (CVE pendiente) Actualización a la versión actual. Aumento confirmado; Aún no arreglado. No especifique repositorios que no sean de confianza. Homologado para windsurf. Aún no arreglado. No especifique repositorios que no sean de confianza. El código del humano Claude está en disputa. La versión actual le advierte sobre actualizaciones y lea la advertencia del enlace simbólico antes de aceptar.
Anthropic rechazó la clasificación y le dijo a Wiz que este escenario estaba «fuera de nuestro modelo de amenaza». El desarrollador decidió confiar en la carpeta al comienzo de la sesión y posteriormente aprobó las ediciones, por lo que la decisión fue suya.
También dijo que la advertencia de enlace simbólico de Claude Code se envió como una mejora de rutina en lugar de una solución a principios de febrero, antes del informe privado de Wiz, y que el anterior «sin comentarios» fue una respuesta automática.
De los seis proveedores, sólo Anthropic afirma que esto no es un error. Se han enviado tres correcciones y dos están actualmente en proceso. Pero las preguntas que plantea esa postura son reales, y Anthropic no es la única que necesita respuesta. ¿Hasta qué punto los agentes de codificación deberían proteger a los desarrolladores que ya confían en repositorios maliciosos?

Independientemente de las herramientas que utilice, puede reducir el riesgo no sólo aplicando parches sino también desarrollando algunos hábitos. Ejecute el agente con acceso restringido a archivos o en un entorno limitado o contenedor. Lea el archivo README del repositorio y los archivos de configuración ocultos antes de permitir que el agente lo «configure».
Y después de trabajar con un repositorio desconocido, compruebe qué archivos están siendo atacados. Estos archivos están fuera de tu proyecto, por lo que no aparecerán en tu estado de git. Estos incluyen archivos de inicio de shell, claves SSH y la configuración de la propia herramienta de inteligencia artificial. Por ejemplo, puede verificar la marca de tiempo usando ls -la ~/.zshrc ~/.ssh/authorized_keys para ver si algo cambió mientras se ejecutaba el agente.
El consejo de Wiz para los creadores de herramientas es simple. Resuelva enlaces simbólicos para mostrar el destino real antes de hacer preguntas, marque las escrituras que llegan fuera de la carpeta del proyecto y nunca toque el disco hasta que el usuario realmente lo apruebe.
Defectos comunes, no es el error de un solo proveedor
En mayo, Adversa AI lanzó SymJack, el mismo enlace simbólico y patrón de autorización para seis agentes de codificación, incluidos Claude Code, Cursor, GitHub Copilot y Grok Build.
Dos equipos independientes descubrieron que esto no era un fallo de un proveedor, sino más bien una debilidad de diseño común. Estos agentes utilizan operaciones de archivos normales para seguir enlaces simbólicos y solicitar autorización según la ruta que se les pasa, en lugar de la ruta a la que llega la escritura.
La superposición se extiende a CVE. La propia recomendación de Cursor para el error del enlace simbólico acredita tanto a Wiz como a Cato AI Labs, cuyo trabajo anterior apareció en The Hacker News como DuneSlide.
Los archivos en los que confía su asistente de IA ya no son solo código. Para estos agentes, sirven también como instrucciones a seguir y caminos para sus acciones, dando forma a lo que aparece en el cuadro de aprobación. El boletín de seguridad de AWS también cubre otra falla de Amazon Q, CVE-2026-12957. Esta vulnerabilidad permite que un repositorio comprometido cargue automáticamente archivos de configuración y ejecute comandos que roben las claves de AWS de un desarrollador una vez que el espacio de trabajo sea confiable.
Aunque todavía se está investigando la técnica exacta de GhostApproval, ya están empezando a surgir patrones más amplios. Es un repositorio que contiene archivos que guían a los agentes de IA hacia comportamientos peligrosos.
Como informó THN en junio, el gusano Miasma incorporó un archivo de configuración de agente de IA en un repositorio de Microsoft Azure, lo que permitía que la carga útil se ejecutara en el momento en que un desarrollador abría un proyecto en Claude Code, Cursor o Gemini. En respuesta, GitHub deshabilitó 73 repositorios de Microsoft afectados.
«Human in the loop» sólo te protege si el loop dice la verdad. Como estos asistentes tienen más libertad para leer y escribir archivos por su cuenta, un cuadro de autorización que especifica el destino incorrecto se convierte en una responsabilidad en lugar de una red de seguridad, y tratar los repositorios engañosos simplemente como un problema del usuario pone demasiado peso en aquellos menos conscientes del intercambio.
Source link
