GhostApproval es el nombre que Wiz dio a un fallo que encontró en al menos seis asistentes de código IA populares, revelado en julio de 2026. En corto: un repositorio trampa puede engañar a tu agente de código para que escriba archivos fuera de tu proyecto - y, en los peores casos, antes de que pulses "aprobar". Es un buen recordatorio de que dejar que un agente toque tu sistema de archivos solo es tan seguro como lo que el diálogo de aprobación muestra de verdad. Esto es qué es GhostApproval, qué herramientas se vieron afectadas y cómo protegerte.
Cómo funciona GhostApproval
El truco combina dos viejas debilidades: seguir enlaces simbólicos (CWE-61) y una interfaz engañosa (CWE-451). Un repo malicioso contiene un symlink - un archivo que en realidad es un puntero a otra ruta. Su nombre parece inocente, digamos project_settings.json, pero apunta a algo sensible como ~/.ssh/authorized_keys. Pides al agente que edite "el archivo de ajustes"; sigue el enlace y escribe en el destino real - por ejemplo añadiendo la clave SSH de un atacante. Lo clave: el diálogo de confirmación muestra el nombre inocente del symlink, no el destino resuelto. Como dice Wiz, "el agente lo sabía, el usuario no": el propio razonamiento del modelo a veces reconocía la ruta peligrosa mientras el diálogo la ocultaba.
La variante peligrosa: escribe antes de que apruebes
En algunas herramientas la escritura ocurre antes de que aparezca el diálogo Aceptar/Rechazar, convirtiendo la confirmación en un botón de deshacer en vez de una barrera. Wiz describe exactamente esto en Windsurf: la clave SSH de un atacante se escribía en ~/.ssh/authorized_keys antes de que el usuario pudiera aprobar. Es una ejecución remota de código previa a la autorización - el control humano llega después de que el daño ya está hecho.

Qué herramientas se vieron afectadas y su estado
Wiz probó seis asistentes y reportó una variante en cada uno. Este es el estado divulgado, reportado de forma neutral:
- Cursor - corregido (CVE-2026-50549, versión 3.0+).
- Amazon Q Developer - corregido (CVE-2026-12958, language server 1.69.0).
- Google Antigravity - corregido (desplegado en mayo de 2026).
- Augment - acusó recibo; sin parche en la divulgación.
- Windsurf - acusó recibo; la variante previa a la autorización, sin parche en la divulgación.
- Anthropic Claude Code - Anthropic considera el problema fuera de su modelo de amenazas, sobre la base de que el usuario confirma que confía en un directorio al iniciar Claude Code por primera vez; por separado, Claude Code añadió avisos de symlinks en una versión anterior.
Por qué importa más allá de un fallo
GhostApproval no es realmente el error de un solo proveedor - es un patrón. Dos decisiones de diseño lo causan: un sandbox superficial que no resuelve la ruta canónica de un archivo antes de actuar, y aprobaciones humanas formales en vez de informadas, porque apruebas un nombre en lugar de la acción real. Cualquier agente con amplio acceso al sistema de archivos puede caer en esta trampa. Es la misma clase de riesgo que cubrimos en nuestra guía de seguridad de agentes de IA: autonomía más acceso significa que una mala instrucción se convierte en una acción real.
Cómo protegerte
- Actualiza tus herramientas ya. Varios proveedores lo han parcheado; usa la última versión de tu asistente de código.
- Confía solo en repositorios de confianza. Ten cuidado al dejar que un agente actúe en repos desconocidos o recién clonados.
- Usa el menor privilegio. Ejecuta los agentes en un contenedor o sandbox que no pueda alcanzar
~/.ssh, tus credenciales de nube u otros secretos. - Lee los diálogos. Ten cuidado con ediciones de archivos de configuración y dotfiles, y prefiere herramientas que resuelvan los symlinks y muestren la ruta de destino real.
En resumen
GhostApproval demuestra que el "control humano" solo vale lo que el diálogo revela de verdad. Un symlink puede dirigir a un agente bienintencionado hacia tus secretos, y una confirmación que oculta la ruta real - o aparece tras la escritura - da una falsa tranquilidad. Actualiza tu asistente de código IA, restringe lo que puede tocar, y considera las aprobaciones útiles solo cuando te muestran el destino verdadero.



