GhostApproval: como un symlink puede secuestrar tu asistente de codigo IA

  • VersionDude
  • Herramientas
  • 6 min de lectura

En julio de 2026 Wiz revelo GhostApproval, un fallo que afecta a seis asistentes de codigo IA. Un repositorio malicioso usa un enlace simbolico para redirigir una edicion aprobada hacia archivos sensibles como tus claves SSH. Que es el ataque, que herramientas estan afectadas y como mantenerte a salvo.

El 8 de julio de 2026 la firma de seguridad cloud Wiz revelo un fallo que llama GhostApproval, que afecta a seis asistentes de codigo IA populares. El truco es sencillo e inquietante: el asistente te pide permiso para editar un archivo de aspecto inofensivo, tu lo apruebas, y la escritura aterriza discretamente en otro archivo, uno sensible. El nombre lo resume: apruebas un fantasma y ocurre otra cosa.

Esto importa a cualquier desarrollador que use un agente IA para leer y editar codigo, porque esos agentes actuan con tus propios permisos sobre el sistema de archivos. Cuando un agente puede escribir en disco, un repositorio trampa puede convertir una sola edicion aprobada en ejecucion remota de codigo. Esto es lo que es GhostApproval, como funciona exactamente, que herramientas estan afectadas y la disciplina que te protege.

Qué es GhostApproval

Un candado de laton con su llave insertada, sobre un monton de eslabones de cadena de acero. GhostApproval coló la llave de un atacante en el archivo que decide quien puede desbloquear la maquina de un desarrollador.
Un candado de laton con su llave insertada, sobre un monton de eslabones de cadena de acero. GhostApproval coló la llave de un atacante en el archivo que decide quien puede desbloquear la maquina de un desarrollador.

Wiz publico la investigacion el 8 de julio de 2026 y bautizo el patron como GhostApproval. Segun su informe, los asistentes afectados son Amazon Q Developer, Anthropic Claude Code, Augment, Cursor, Google Antigravity y Windsurf. La debilidad de fondo se clasifica como CWE-61, el seguimiento de enlaces simbolicos - una categoria de fallo anterior en decadas a las herramientas de IA.

La palabra fantasma es la clave. El asistente te muestra una solicitud de aprobacion que nombra un archivo, asi que crees estar autorizando un cambio pequeno y seguro. Pero la accion que realmente se ejecuta escribe en otro sitio por completo. Aprobaste una cosa; la herramienta hizo otra. Esa brecha entre lo que ves y lo que sucede es toda la vulnerabilidad.

Como funciona el ataque por symlink

El mecanismo es una vieja funcion de Unix llamada enlace simbolico, o symlink. Un symlink es un archivo que simplemente apunta a otro archivo en otro lugar del disco. Lee o escribe el symlink y el sistema operativo te redirige discretamente a su destino. Es util y del todo normal - pero solo si el programa que lo maneja comprueba adonde lleva realmente el enlace.

  • GhostApproval abusa de los symlinks (CWE-61) en los asistentes de codigo IA
  • Un repo malicioso redirige una edicion aprobada hacia archivos sensibles como ~/.ssh/authorized_keys
  • Seis herramientas afectadas; Amazon Q, Cursor y Google Antigravity publicaron correcciones con CVE
  • Actualiza tu asistente de codigo IA a su ultima version corregida
  • Trata cada repositorio clonado como codigo no fiable y lee lo que apruebas

Wiz construyo un repositorio malicioso con un symlink de nombre inocente, como project_settings.json. Ese enlace no contenia ningun ajuste: apuntaba al ~/.ssh/authorized_keys de la victima, el archivo que lista las claves SSH autorizadas a iniciar sesion en la maquina. El README del repositorio pedia entonces al asistente anadir una linea a project_settings.json.

El agente siguio la instruccion y escribio la linea. Como el archivo era un symlink, la linea aterrizo dentro de authorized_keys - y esa linea era la propia clave publica SSH del atacante, disfrazada de ajuste inofensivo. Segun Wiz, el resultado es inyeccion de clave SSH, persistencia por shell u otra ejecucion remota de codigo, todo fuera del espacio de trabajo donde el agente debia permanecer.

Que herramientas estan afectadas, y corregidas

Las respuestas de los fabricantes variaron, segun Wiz. Amazon Q se corrigio en la version 1.69.0 del servidor de lenguaje y recibio el CVE-2026-12958; Cursor se corrigio en la version 3.0 bajo el CVE-2026-50549; Google Antigravity publico una correccion con un CVE pendiente. Augment y Windsurf reconocieron el problema - Windsurf el 23 de junio de 2026 - con correcciones aun en curso en el momento de la publicacion.

Anthropic, segun Wiz, considero el comportamiento fuera de su modelo de amenazas en lugar de un bug; Wiz tambien senala que Claude Code ya habia anadido avisos sobre symlinks en la version 2.1.32, publicada el 5 de febrero de 2026, antes del informe. Sea cual sea tu herramienta, la medida practica es la misma: actualizala a la ultima version, donde los fabricantes afectados han anadido resolucion de symlinks y avisos.

Como protegerte

Mas alla del parche, la defensa es disciplina. Trata cada repositorio clonado como codigo no fiable, porque un repo puede llevar symlinks que apuntan mucho mas alla de su propia carpeta. El consejo de Wiz a los fabricantes vale como lista mental: resolver los symlinks antes de mostrar una solicitud de aprobacion, avisar con claridad cuando la ruta resuelta sale del espacio de trabajo, y nunca escribir en disco antes de una autorizacion explicita.

Mas alla del parche, la defensa es disciplina. Trata cada repositorio clonado como codigo no fiable, porque un repo puede llevar symlinks que apuntan mucho mas alla de su propia carpeta. El consejo de Wiz a los fabricantes vale como lista mental: resolver los symlinks antes de mostrar una solicitud de aprobacion, avisar con claridad cuando la ruta resuelta sale del espacio de trabajo, y nunca escribir en disco antes de una autorizacion explicita.

- VersionDude

La conclusion honesta

La leccion de fondo sobrevive a este fallo concreto. Un agente de codigo IA actua con tus permisos: aprobar su accion significa confiar en todo el repositorio que lee, no solo en la linea que ves en pantalla. Limita el alcance de tus claves SSH, ejecuta el codigo en el que no confias del todo en un entorno aislado, y lee lo que apruebas - sobre todo cuando el archivo que nombra parece tranquilizadoramente anodino.

Proyecto relacionado