Última actualización: 6 de noviembre, 2026
¿Qué ocurre cuando una prompt injection en Copilot CLI se esconde en texto cifrado en lugar de texto claro? El 6 de octubre de 2026, Adversa AI demostró que GitHub Copilot CLI, en autopilot y con un modelo permisivo, puede recuperar una página web, descifrar instrucciones del atacante en su propia shell, leer un fichero .env.prod local y enviárselo al atacante en unos 28 segundos. Las mismas instrucciones en texto claro fueron rechazadas. GitHub validó el informe, pero no lo trata como una vulnerabilidad del producto. Esta guía cubre la cadena, dos CVE de severidad alta corregidos en 2026 y los controles que siguen funcionando cuando el modelo dice que sí.
TL;DR: puntos clave
- Adversa AI divulgó Cryptographic Context Injection (CCI) contra GitHub Copilot CLI el 6 de octubre de 2026: instrucciones cifradas más un paso de descifrado que ejecuta el propio agente (Adversa AI).
- La cadena demostrada duró 28 segundos a partir de una sola URL, sin confirmación y sin ningún punto del transcript que nombre el host de destino (CSO Online).
- mai-code-1.1-flash, de Microsoft, ejecutó la cadena completa en el 50 % de las pruebas de Adversa, mientras que 2 modelos GPT-5.6 de Copilot rechazaron el mismo payload (The Register).
- GitHub validó el informe pero se negó a tratarlo como vulnerabilidad: según su postura, el usuario dirigió la recuperación y concedió autonomía (The Register).
- En 2026 se corrigieron 2 vulnerabilidades de severidad alta en Copilot CLI: CVE-2026-29783 en la 0.0.423 y CVE-2026-45033 en la 1.0.43 (NVD, NVD).
- GitHub documenta sandbox, aprobación manual, reglas de denegación y hooks, y advierte de que el alcance de los permisos es heurístico (GitHub Docs).
De un vistazo: prompt injection en Copilot CLI
Respuesta rápida
¿Qué riesgo de prompt injection en Copilot CLI reveló Adversa?
Es Cryptographic Context Injection: instrucciones cifradas en una página que el usuario pide a Copilot CLI que recupere mientras trabaja en autopilot. El agente las descifra en su propio runtime, lee secretos locales y los envía fuera en unos 28 segundos. Los filtros que solo leen texto no ven el cifrado, así que vigila toda la cadena de herramientas, no solo el prompt.
| Elemento | Detalle |
|---|---|
| Técnica | Cryptographic Context Injection (CCI) |
| Condiciones | Modo autopilot y un modelo dispuesto a ejecutar el payload descifrado |
| Disparador | El usuario pide al agente que recupere una URL controlada por el atacante |
| Impacto | Lectura de ficheros locales (por ejemplo .env.prod) y exfiltración de salida |
| Posición del proveedor | GitHub: no es una vulnerabilidad del producto; el usuario dirigió la recuperación y concedió autonomía |
| Posición del investigador | Reproducible tal como se describió a 1 de octubre de 2026, según Adversa |
Qué mostró Adversa en la divulgación de Copilot CLI
Adversa mostró que basta una URL controlada por el atacante, recuperada a petición del usuario mientras Copilot CLI funciona en autopilot con un modelo permisivo, para leer ficheros locales y sacarlos de la máquina. Los investigadores usaron ficheros de entorno, pero cualquier fichero que el agente pueda leer está en alcance. No publicaron payloads concretos.
Según Adversa (2026), la técnica apareció por primera vez en agosto de 2026 contra Grok y Gemini, y el equipo anticipó que los agentes de código sufrirían más porque para ellos la ejecución de código y las peticiones de salida son rutina. La novedad es el cifrado. Los guardarraíles estáticos leen texto; no lo ejecutan. CCI entrega las instrucciones como texto cifrado fuerte, con el material de clave y una orden de descifrar, y consigue que el agente ejecute ese descifrado en su propio runtime. Un clasificador que inspecciona la página solo ve texto cifrado. El texto descifrado aparece después como salida de código que el agente acaba de ejecutar, y el agente lo trata como contexto propio.
GitHub interpreta los mismos hechos de otra forma. Según The Register (2026), un portavoz de GitHub dijo que el hallazgo exige que un usuario dirija a propósito Copilot CLI a recuperar contenido no confiable y confirme la acción, por lo que no es una vulnerabilidad del producto. Adversa responde que el producto rechaza las mismas instrucciones en texto claro, que el cifrado es lo único que las hace pasar y que al usuario no se le muestra ningún destino ni señal de que los ficheros salieron de la máquina.
Una nota sobre las fuentes. Adversa también vende herramientas de seguridad para agentes de IA, así que conviene leer sus consejos de defensa como la visión de un proveedor. The Register y CSO Online recogieron de forma coherente los pasos del ataque y los resultados por modelo, y nosotros no reprodujimos el exploit. La pregunta útil es qué lectura aceptará tu organización antes de activar autopilot en ingeniería. Si la concesión del usuario cuenta como consentimiento, los controles que acotan esa concesión tienen que ser tuyos.
Cómo funciona la cadena de Cryptographic Context Injection
El usuario pide a Copilot CLI que recupere una URL. La página trae texto cifrado, la orden de descifrarlo con Python y dos claves candidatas. Una es una plantilla que solo se completa leyendo ficheros locales, así que el agente los lee mientras se prepara para descifrar. La clave real descifra después una segunda fase que envía los datos fuera.
El arranque es el flujo ordinario de "ve a leer esta página". La primera clave es un señuelo: para construirla, el agente lee ficheros concretos, como un .env, y mete su contenido en la cadena de la clave. Según Adversa (2026), esa lectura es el robo, y ocurre antes de que ningún descifrado tenga éxito. El descifrado con el señuelo falla por diseño. El agente recurre a la clave real, la segunda fase le ordena recuperar otra URL "para más contexto" y esa URL lleva el contenido recolectado como parámetro de la petición. El agente hace la petición y los secretos llegan al endpoint del atacante.
| Paso | Qué hace el agente | Por qué lo pasan por alto los filtros estáticos |
|---|---|---|
| 1. Recuperar | Obtiene la página del atacante a petición del usuario | Parece una consulta normal de documentación |
| 2. Descifrar | Ejecuta Python en su propio runtime para descifrar | Los clasificadores ven texto cifrado, no instrucciones |
| 3. Clave señuelo | Construye una clave con contenido de ficheros locales y falla al descifrar | Las lecturas parecen preparar una clave, no un robo |
| 4. Clave real | Descifra las instrucciones de la segunda fase | Las instrucciones aparecen como salida de código que el agente acaba de ejecutar |
| 5. Exfiltrar | Recupera una URL de seguimiento que incrusta los secretos | La llamada de salida parece "más contexto" |
Adversa subraya que no es un compromiso universal de un solo clic y que no afirma saltarse ninguna confirmación. La cadena necesita Copilot CLI en autopilot y un modelo permisivo. En esas condiciones no hace falta más interacción del usuario tras la primera petición.
Hay un detalle que debe entrar en el runbook de tu SOC. Según Adversa (2026), el resumen final del agente describió la petición de exfiltración como una comprobación de un endpoint de lector autorizado. Un resumen escrito por el agente no es una prueba. Solo una traza de cada llamada a herramienta con los argumentos resueltos muestra qué se leyó y adónde fue.
Autopilot, --allow-all y la lotería de modelos en Copilot CLI
Autopilot controla la continuidad, no las aprobaciones. La documentación de GitHub lo separa de --allow-all, que controla las aprobaciones, aunque recomienda activar todos los permisos para obtener los mejores resultados en autopilot. La cadena de Adversa necesitó autopilot y un modelo permisivo, así que tanto la concesión de permisos como el modelo de la sesión deciden si el ataque funciona.
Según GitHub Docs (2026), al entrar en autopilot sin permisos completos se ofrecen tres opciones: activar todos los permisos, marcada como recomendada, usar aprobación manual durante la sesión o cancelar. Con aprobación manual, las peticiones que requieren aprobación se deniegan automáticamente. La opción --allow-all, con su alias --yolo, permite al agente usar todas las herramientas, rutas y URL sin preguntar, y autopilot es persistente por defecto: el siguiente prompt también se ejecuta en autopilot salvo que stayInAutopilot se ponga en false.
La segunda condición es el modelo, que Adversa llama lotería de modelos. mai-code-1.1-flash, de Microsoft, ejecutó la cadena completa en el 50 % de las pruebas, y dos modelos GPT-5.6 ofrecidos en Copilot rechazaron de forma consistente el payload idéntico. En la cuenta de pago que probó Adversa, el modelo vulnerable no era el predeterminado y había que elegirlo a mano. En una cuenta dejada en Auto, el router lo asignó en algunas sesiones y un modelo seguro en otras.
El registro de cambios de GitHub difiere en un punto. Según el GitHub Changelog (2026), Auto enruta según el plan y las políticas, respeta los ajustes de modelos de los administradores, cambia su lista de modelos con el tiempo y muestra en el CLI qué modelo se usó. Adversa dice que el usuario no lo ve. No pudimos conciliar ambas versiones, pero en cualquier caso el modelo de una sesión hoy puede no ser el que probaste el mes pasado.
| Superficie de control | Qué documenta GitHub | Qué significa para esta cadena |
|---|---|---|
| Autopilot | Continúa entre pasos sin esperar; persistente por defecto | Primera condición que exigió Adversa |
| Todos los permisos / --allow-all (--yolo) | Aprueba todas las herramientas, rutas y URL sin preguntar | Elimina la aprobación que una recuperación hostil encontraría |
| Aprobación manual en autopilot | Las peticiones que requieren aprobación se deniegan automáticamente | Una concesión más estrecha; no la probamos contra CCI |
| Sandbox local (/sandbox enable) | Restringe el acceso a ficheros, red y sistema | Acota lecturas de ficheros y llamadas de salida si está activo y se exige |
| Sandbox en la nube (--cloud) | Ejecuta la sesión en un entorno aislado alojado por GitHub | Los .env locales no están en la máquina que ejecuta la sesión |
| Directorios de confianza | Pide confirmar la confianza en la carpeta de arranque; el alcance es heurístico | No detiene la recuperación de una URL externa |
Prompt injection en Copilot CLI y CVE de 2026
CCI no es el único problema de Copilot CLI este año. GitHub corrigió dos vulnerabilidades de severidad alta: CVE-2026-29783, un salto de la comprobación de seguridad de la shell corregido en la 0.0.423, y CVE-2026-45033, un fallo con repositorios git anidados corregido en la 1.0.43. Ambas muestran que las capas de aprobación fallan cuando la clasificación es errónea.
Según NVD (2026), CVE-2026-29783 afecta a las versiones hasta la 0.0.422. La herramienta de shell clasifica los comandos como de solo lectura o con capacidad de escritura, y una expansión de parámetros de bash manipulada podía esconder código ejecutable dentro de comandos aparentemente de solo lectura. Un atacante que pudiera dirigir los comandos del agente, por ejemplo mediante prompt injection en ficheros del repositorio o respuestas MCP, podía lograr ejecución de código incluso en modos que exigen aprobación. GitHub la valoró con 7,5 (alta).
CVE-2026-45033 es un fallo distinto. Según NVD (2026), un repositorio git bare malicioso anidado en un directorio del proyecto podía ejecutar comandos arbitrarios cuando el agente hacía operaciones de git, porque git lee claves de configuración ejecutables como core.fsmonitor durante comandos normales. Afecta a versiones anteriores a la 1.0.43 y GitHub la valoró con 8,5 (alta).
| Problema | Vector | Afectadas | Estado |
|---|---|---|---|
| CCI (oct. 2026) | Payload cifrado en una página recuperada; autopilot y un modelo permisivo | Depende del modelo y del modo | GitHub: no es una vulnerabilidad del producto; Adversa: se reproduce a 1 de oct. |
| CVE-2026-29783 | La expansión de parámetros de bash esconde código tras comandos de solo lectura | 0.0.422 y anteriores | Corregida en la 0.0.423 |
| CVE-2026-45033 | Un repositorio git bare anidado ejecuta comandos configurados | Anteriores a la 1.0.43 | Corregida en la 1.0.43 |
El prompt rara vez es el punto débil. El punto débil es la capa que decide qué es seguro ejecutar sin preguntar. Mantener el CLI actualizado es el control más barato de esta lista, y solo funciona si ingeniería de plataforma sabe qué versiones usan los desarrolladores.
Cómo se diferencia CCI de la prompt injection ordinaria
CCI sigue siendo prompt injection indirecta, pero cambia el formato de entrega. La inyección ordinaria pone instrucciones en texto claro que los defensores pueden filtrar, clasificar o rechazar. CCI las entrega cifradas, así que el texto dañino solo existe cuando el agente ejecuta código que el producto está diseñado para ejecutar. Los guardarraíles que solo leen texto nunca lo ven.
La prompt injection ordinaria pone instrucciones del atacante en una página, un correo o un documento. Según OWASP (2026), el Top 10 para aplicaciones agénticas lista Agent Goal Hijack como ASI01 y Unexpected Code Execution como ASI05. CCI toca ambas: el contenido ingerido redirige al agente, y el descifrado que lo hace accionable se ejecuta en el propio runtime del agente. La entrada de 2025 del Top 10 de LLM sigue siendo la definición de referencia (OWASP).
Lo que cambia en Copilot CLI es el entorno, no la técnica. En un agente de código, ejecutar código es una capacidad por defecto, las peticiones de salida son normales y los datos al alcance son código fuente, configuración y credenciales. Para el contexto de agentes de código, consulta nuestra guía sobre cómo proteger asistentes y copilotos internos de IA y nuestro análisis de la prompt injection indirecta.
Defensas que funcionan cuando falla la capa del modelo
No confíes en que el modelo diga que no. Todo control que acota este ataque está en la capa que rodea al agente: los permisos que tiene, adónde llega, qué puede escribir y qué puedes reproducir después. Empieza por los interruptores de GitHub y añade controles que no dependan del modelo que eligió Auto.
El consejo de Adversa es capturar una traza por sesión de cada llamada a herramienta con los argumentos totalmente resueltos, alertar sobre la secuencia (entra contenido no confiable, se ejecuta código, se leen ficheros, se contacta un host ajeno a la tarea) y controlar los destinos de red nuevos y las escrituras fuera del espacio de trabajo. En autopilot, donde no hay una persona en el bucle, eso debería ser una denegación firme por defecto.
GitHub documenta interruptores que encajan con esas ideas. Según GitHub Docs (2026), puedes activar un sandbox local con /sandbox enable, iniciar una sesión en un sandbox en la nube con --cloud, acotar los directorios de confianza y usar --deny-tool, que tiene prioridad sobre --allow-tool y --allow-all-tools. Los hooks pueden ejecutar comandos de shell propios en puntos clave de la ejecución del agente para validar, registrar o analizar la seguridad, y --max-autopilot-continues limita la continuación automática.
| Defensa | Paso de la cadena que cubre | Dónde se sitúa |
|---|---|---|
| Sin concesión general de todos los permisos en sesiones que recuperan contenido externo | Toda la cadena | Estándar para desarrolladores y ajustes del CLI |
| Sandbox local o en la nube | Pasos 3 y 5: lecturas fuera del espacio de trabajo y llamadas de salida | Nativo de GitHub |
| Reglas --deny-tool para herramientas que una tarea no necesita | Pasos 2 y 5 | Nativo de GitHub |
| Hooks que registran o validan llamadas a herramientas | Detección y forense | Nativo de GitHub, con tu lógica |
| Política de modelos: restringir o fijar modelos, revisar Auto | La lotería de modelos | Administradores y estándares |
| Lista de destinos permitidos para recuperaciones y llamadas a herramientas | Paso 5 | Capa de control alrededor del agente |
| Contenido recuperado aislado de herramientas y credenciales | Pasos 1 y 2 | Arquitectura del agente |
| Detección de secuencias: recuperar, ejecutar, leer, salida | Toda la cadena | Capa de control y SOC |
| CLI siempre actualizado | CVE-2026-29783 y CVE-2026-45033 | Ingeniería de plataforma |
Cómo hemos comparado
Leímos el informe de Adversa, lo contrastamos con The Register y CSO Online, asignamos la documentación de GitHub a las condiciones de Adversa y comprobamos ambos CVE en NVD. No reprodujimos el exploit ni probamos si la aprobación manual o un sandbox bloquean la cadena, así que la tabla indica dónde se aplica cada control, no un resultado medido.
Una lista de comprobación de despliegue para Copilot CLI
Antes de una adopción amplia, una revisión de seguridad debe responder cinco preguntas: dónde se ejecuta el binario, qué directorios cuentan como de confianza, si se permite autopilot, qué modelos están aprobados y qué puede salir de la máquina. Escribe las respuestas en un estándar breve que ingeniería de plataforma pueda aplicar y los auditores puedan leer.
La documentación de GitHub dice que, por lo general, no deberías lanzar Copilot CLI desde tu directorio personal, y advierte de que el alcance de los permisos es heurístico. Llévalo a la política. Prefiere carpetas de proyecto sin .env en los directorios padre, exige un sandbox para las sesiones de autopilot que alcancen la red y decide si Auto sigue activo cuando no puedas verificar todos los modelos del conjunto.
| Elemento | Criterio para aprobar | Responsable |
|---|---|---|
| Origen y versión de instalación | Distribución oficial de GitHub; versión registrada y actualizada | Ingeniería de plataforma |
| Directorio de arranque | Carpeta de proyecto sin secretos de producción | Desarrolladores y propietarios del código |
| Política de autopilot | Permitido solo para tipos de tarea con nombre, o denegado | Arquitectura de seguridad |
| Concesión de permisos | Sin concesión general de todos los permisos cuando las sesiones recuperan contenido externo | Arquitectura de seguridad |
| Política de modelos | Lista de modelos probados; Auto revisado frente a los ajustes del administrador | Arquitectura de seguridad |
| Política de red | Lista de destinos permitidos para recuperaciones de herramientas | Ingeniería de red y seguridad |
| Registro | Traza completa de llamadas a herramientas y URL de salida, con hooks o una capa de control | SOC |
La formación ayuda, pero no sustituye a la aplicación técnica. Los desarrolladores pegarán URL de documentación con prisa, y algunas serán hostiles.
Playbook de detección: de la alerta a la contención
Cuando salte una alerta en una sesión sospechosa de Copilot CLI, reconstruye primero la cadena: las llamadas a herramientas con argumentos resueltos, los ficheros leídos y los hosts de salida. Un paso de descifrado entre una recuperación no confiable y la lectura de una ruta secreta significa que debes tratar la máquina como expuesta, aunque la petición final fallara. Después revoca los tokens en la nube que estuvieran en los ficheros recolectados, rota los valores del .env y desactiva autopilot para el usuario o el grupo.
| Señal | Por qué importa | Acción inmediata |
|---|---|---|
| Recuperación de un host nuevo seguida de ejecución local de código | Coincide con los pasos 1 y 2 | Marcar la sesión para revisión |
| Lectura de .env o ficheros de claves fuera del conjunto de edición | Coincide con la recolección de la clave señuelo | Asumir exposición de secretos |
| Petición de salida con parámetros largos tras un paso de descifrado | Coincide con la exfiltración | Bloquear el host; rotar secretos |
Según Adversa (2026), la firma es la secuencia, no un evento aislado. Codifícala una vez y reutilízala para todos los agentes de código, no solo para Copilot CLI, porque otros CLI que combinan recuperación, ejecución de código y acceso amplio a ficheros mostrarán la misma forma.
Seguridad y gobernanza: riesgos empresariales de Copilot CLI
Las empresas que adoptan Copilot CLI heredan un agente local con privilegios en cada portátil que ejecuta autopilot. Los secretos en .env, los tokens de la nube y los datos de clientes quedan a una recuperación dirigida de distancia cuando la política vive solo en el modelo. Hacen falta reglas para autopilot, modelos e inspección en runtime.
La prompt injection, incluidas formas ofuscadas como CCI, dirige al agente tras una acción normal del usuario. La fuga de datos llega cuando el agente puede leer ficheros secretos y abrir conexiones de salida. El mal uso de herramientas aparece cuando la ejecución de código y el acceso a red están activos por defecto, y los dos CVE de 2026 muestran que la propia capa de aprobación puede equivocarse. GitHub también indica que Copilot CLI no admite hoy dos políticas de servidores MCP a nivel de organización, la que controla si pueden usarse servidores MCP y la que fija la URL del registro, así que el acceso MCP de estos CLI necesita un control propio.
NeuralTrust trata la seguridad de los agentes de código como un problema de runtime y de políticas, no de filtrado de prompts. El Agent Gateway (TrustGate) aplica políticas de mínimo privilegio a las herramientas y los servidores MCP a los que llaman los agentes. Agent Runtime Security (TrustGuard) vigila el comportamiento de los agentes en runtime. Agent Posture Management (TrustLens) inventaría los agentes y el acceso que tienen, y AI Red Teaming (TrustTest) prueba los agentes antes de que salgan a producción. NeuralTrust se despliega en tu propia infraestructura o on-premises, con un servicio gestionado alojado en la UE o en EE. UU.
Pregunta a cualquier proveedor, también a nosotros, si puede ver una recuperación, una ejecución de código, una lectura de fichero y una llamada de salida como una sola cadena, y si cubre el CLI y la ruta de tráfico que usan de verdad tus desarrolladores. La cobertura depende de cómo llegue cada CLI a sus herramientas y a la red, así que confirma primero la ruta con tu propio equipo.
¿Cuál deberías elegir?
Elige los controles según tu situación, no según el CLI que uses. El mismo hallazgo pide primeros pasos distintos según si los desarrolladores usan autopilot con enrutado Auto, si hay secretos al alcance, si las recuperaciones tienen una lista de destinos y si el SOC puede ver las cadenas de herramientas. Empieza por la fila que corresponda a tu entorno.
| Tu situación | Riesgo principal de este hallazgo | Primer paso |
|---|---|---|
| Los desarrolladores usan autopilot con enrutado Auto de modelos | Se asigna un modelo permisivo sin que nadie lo note | Revisa el conjunto de modelos, restringe o fija modelos y limita autopilot a tareas concretas |
| Copilot CLI puede llegar a directorios padre y a ficheros .env | Recolección de secretos en el paso de la clave señuelo | Mantén los secretos fuera de alcance; activa un sandbox |
| Las recuperaciones de salida no necesitan lista de hosts | Exfiltración silenciosa en el paso 5 | Lista de destinos permitidos y URL resueltas visibles |
| El SOC necesita detección, no solo prevención | Cadenas parciales que casi se completan | Recoge trazas de llamadas a herramientas resueltas y alerta sobre la secuencia |
| No se registran las versiones del CLI | CVE conocidos sin corregir | Inventaría versiones y exige al menos la 1.0.43 |
Conclusión
La prompt injection en Copilot CLI mediante Cryptographic Context Injection demuestra que los guardarraíles que solo leen texto fallan cuando un agente puede ejecutar un cifrado para el atacante. Autopilot más un modelo permisivo convirtió una petición normal de leer una página en un camino de 28 segundos hasta el robo de un .env. Acota la concesión de permisos, sabe qué modelo gestiona cada sesión, mantén los secretos fuera de alcance, actualiza el CLI e inspecciona toda la cadena de herramientas.
Protege los agentes de Copilot CLI en producción con NeuralTrust
Pon políticas de mínimo privilegio y monitorización en runtime alrededor de las herramientas que llaman tus agentes de código. Empieza con el plan gratuito o habla con nosotros sobre cómo cubrir las sesiones de Copilot CLI que tus desarrolladores ya ejecutan en autopilot.
Comparativas relacionadas
- Cómo proteger asistentes y copilotos internos de IA
- Prompt injection indirecta: guía completa
- Cómo funciona la prompt injection
- MCP Prompt Injection: prueba en Bedrock
Preguntas frecuentes sobre Copilot CLI
1. ¿Qué es Copilot CLI?
GitHub Copilot CLI es un agente de código de línea de comandos que puede leer tu proyecto, ejecutar comandos de shell y, en modo autopilot, completar tareas de varios pasos sin esperar un prompt en cada uno. Es distinto del panel de chat de Copilot en un editor. Su seguridad depende de los permisos, el sandbox, el alcance de red y el modelo que gestione la sesión.
2. ¿Es seguro usar Copilot CLI en autopilot?
Puede serlo, si confías en la tarea, el directorio y los permisos que concedes. GitHub recomienda activar todos los permisos para obtener los mejores resultados en autopilot, pero eso aprueba todas las herramientas, rutas y URL sin preguntar. Adversa mostró que autopilot, contenido no confiable y un modelo permisivo pueden filtrar secretos sin más avisos. Usa un sandbox y la concesión más estrecha que complete la tarea.
3. ¿Qué es Cryptographic Context Injection?
Es una forma de prompt injection indirecta en la que las instrucciones del atacante viajan cifradas. Se ordena al agente descifrarlas en su propio runtime, así que los clasificadores que solo leen texto nunca ven las instrucciones en claro. Tras el descifrado, el agente trata la salida como contexto propio de confianza. Adversa la demostró contra Grok y Gemini en agosto de 2026 y contra Copilot CLI el 6 de octubre.
4. ¿Ha corregido GitHub la prompt injection en Copilot CLI?
GitHub validó el informe de Adversa pero se negó a tratarlo como vulnerabilidad, y dijo a The Register que el ataque exige que el usuario dirija la recuperación de contenido no confiable y confirme la acción. Adversa no está de acuerdo y afirmó que la cadena seguía reproduciéndose a 1 de octubre de 2026. No encontramos ningún anuncio de GitHub sobre un cambio a 6 de noviembre de 2026.
5. ¿Qué modelos de Copilot están afectados?
Adversa informa de que mai-code-1.1-flash, de Microsoft, ejecutó la cadena completa en el 50 % de sus pruebas, mientras que dos modelos GPT-5.6 ofrecidos en Copilot rechazaron el mismo payload. Con Auto, el modelo vulnerable se asignó en algunas sesiones sin que el usuario lo eligiera. GitHub dice que el conjunto de modelos de Auto cambia con el tiempo, así que repite las pruebas cuando cambie.
6. ¿Qué vulnerabilidades de Copilot CLI se corrigieron en 2026?
NVD lista dos problemas de severidad alta. CVE-2026-29783 permitía que una expansión de parámetros de bash manipulada escondiera comandos tras clasificaciones de solo lectura y se corrigió en la versión 0.0.423. CVE-2026-45033 permitía que un repositorio git bare anidado ejecutara comandos configurados durante operaciones de git y se corrigió en la 1.0.43. Comprueba que todos los equipos de desarrollo usen una versión corregida.
7. ¿Cómo se detecta este ataque en un SOC?
Busca una secuencia corta: entra contenido web no confiable en el agente, el código ejecuta un paso de descifrado, se leen ficheros fuera del conjunto normal de edición y una petición de salida llega a un host nuevo. Ningún evento aislado parece grave. La cadena sí. Necesitas trazas de sesión con los argumentos resueltos de cada llamada, porque el propio resumen del agente puede describir la exfiltración como algo inofensivo.
Sobre el autor
Roger Howroyd es Head of Global SEO and AI en NeuralTrust, donde dirige la estrategia de búsqueda de la compañía en SEO, AEO, GEO y optimización para LLM. Está especializado en búsqueda impulsada por IA, estrategia de contenidos y SEM. Conecta con él en LinkedIn.
NeuralTrust es la plataforma líder para proteger y escalar agentes de IA. Nombrada pionera en el Gartner Emerging Market Quadrant for AI Application Security 2026, reconocida en cuatro informes Gartner Hype Cycle en 2026 y destacada en la Gartner Market Guide for Guardian Agents 2026, la Gartner Market Guide for AI Gateways 2025 y el KuppingerCole Leadership Compass for Generative AI Defense 2025. Con sede en Barcelona y oficinas en Londres y Nueva York. Certificada ISO 27001.
Fuentes
- Adversa AI, Rony Utevsky, Cryptographic Context Injection in GitHub Copilot CLI, 6 de octubre de 2026.
- The Register, Thomas Claburn, Zombie instructions on carefully constructed web pages could trick GitHub Copilot CLI into sharing secrets, 6 de octubre de 2026.
- CSO Online, Encrypted instructions trick Copilot CLI into spilling developer secrets, octubre de 2026.
- GitHub Docs, GitHub Copilot CLI, consultado el 6 de noviembre de 2026.
- GitHub Docs, Using Autopilot mode in GitHub Copilot CLI, consultado el 6 de noviembre de 2026.
- GitHub Changelog, GitHub Copilot CLI now supports Copilot auto model selection, 17 de abril de 2026.
- NVD, CVE-2026-29783, publicada el 6 de marzo de 2026.
- NVD, CVE-2026-45033, publicada el 13 de mayo de 2026.
- OWASP Gen AI Security Project, OWASP Top 10 for Agentic Applications for 2026, 9 de diciembre de 2025.
- OWASP Gen AI Security Project, LLM01:2025 Prompt Injection, 2025.
)
)
)