Investigadores de seguridad han demostrado que GitHub Copilot CLI puede filtrar credenciales y claves API si se topa con una página web maliciosa que contiene instrucciones cifradas.
El ataque, bautizado como Cryptographic Context Injection, explota la capacidad del agente para ejecutar código en su propio entorno. La respuesta de GitHub ha sido controvertida: sostiene que no es una vulnerabilidad del producto, sino un riesgo que el usuario asume al usar el modo automático.
El hallazgo: cuando el agente lee lo que no debe
GitHub Copilot CLI, la herramienta de línea de comandos para programadores basada en inteligencia artificial, puede revelar secretos de desarrolladores si se encuentra con instrucciones que le ordenan hacerlo. La vulnerabilidad no es nueva, pero el método para explotarla sí.
Según los investigadores de seguridad de Adversa AI, Copilot CLI sufre el mismo tipo de ataque que ya se identificó en Grok hace dos meses: la Cryptographic Context Injection (CCI) , o inyección de contexto criptográfico.
La premisa es engañosamente simple. Imagina que un usuario está trabajando en un proyecto y ejecuta el agente en modo autopiloto. En otras herramientas de programación agéntica, como Claude de Anthropic, ese modo es el predeterminado, pero en GitHub Copilot CLI sigue siendo opcional.
Si el agente, en ese estado, lee una página web que contiene un conjunto malicioso de instrucciones cifradas con una clave privada publicada en el mismo sitio, el ataque puede desencadenarse.
¿Cómo funciona el ataque? Cifrado para engañar a las defensas
La clave de esta técnica es que las instrucciones maliciosas viajan como texto cifrado fuerte, acompañadas de la clave para descifrarlas y una orden para que el agente ejecute esa desencriptación en su propio runtime de código.
“Las barreras de protección estáticas leen texto; no lo ejecutan”, explica Rony Utevsky, investigador de Adversa AI, en un blog compartido con The Register.
“CCI envía instrucciones maliciosas como criptogramas fuertes, junto con el material de la clave y una instrucción para descifrar, e induce al agente a ejecutar esa desencriptación en su propio entorno de ejecución de código” .
Los clasificadores de contenido activo que podrían estar leyendo el texto ingerido como defensa del modelo no detectarían el código cifrado.
A diferencia de codificaciones como base64 o cifrados por sustitución, que el modelo puede deshacer porque aprendió a decodificarlos durante su entrenamiento, el cifrado fuerte impide que el modelo reconozca el contenido malicioso.
La cadena de ataque: dos claves, una trampa
El ataque se desarrolla en varios pasos cuidadosamente diseñados:
- El usuario ejecuta Copilot CLI y le pide que obtenga una URL específica.
- La página contiene contenido cifrado, instrucciones de desencriptación que requieren el uso de Python y dos posibles claves de desencriptación.
- La primera clave es falsa. Es una plantilla que el agente intenta construir leyendo archivos específicos del disco, como el archivo .env del usuario. Esos secretos se añaden a la cadena de la clave.
- La desencriptación inicial falla. Entonces se prueba la segunda clave, que sí funciona.
- El agente recibe instrucciones para obtener otra URL con más contexto. Esa URL contiene los secretos recolectados y la solicitud de red los transmite al atacante.
La lotería del modelo: el usuario no elige, no ve, no sabe
Este ataque no funciona siempre. Depende del modelo subyacente que esté utilizando Copilot CLI, algo que no siempre es obvio para el usuario.
GitHub Copilot CLI utiliza actualmente dos opciones:
– mai-code-1.1-flash, el modelo propio de Microsoft, que ejecutó la cadena de ataque completa en el 50% de los intentos.
– Dos modelos OpenAI GPT-5.6, que rechazaron la carga útil del ataque.
Utevsky describe la situación como una “lotería de modelos” .
“En la cuenta de pago que probamos, el modelo vulnerable no era el predeterminado y tenía que seleccionarse a mano”, dice Utevsky. “Pero en una cuenta con la selección de modelo en Auto, el enrutador asignaba el modelo vulnerable en algunas sesiones y uno seguro en otras, sin que el usuario hiciera nada fuera de los valores predeterminados. El usuario no elige, y no ve, qué modelo gestionó la sesión” .
La respuesta de GitHub: “no es una vulnerabilidad”
Adversa AI reportó la vulnerabilidad a través del programa de recompensas por errores de GitHub el 17 de septiembre de 2026. El equipo de triaje de GitHub validó el hallazgo, pero se negó a tratarlo como una vulnerabilidad.
Un portavoz de GitHub confirmó esta postura a The Register, argumentando que las acciones del usuario equivalen a consentir lo que ocurre después:
“GitHub valora las contribuciones de nuestra comunidad de investigación de seguridad y está comprometida a investigar los problemas de seguridad reportados. Tras investigar, determinamos que esto requiere que un usuario dirija intencionadamente a Copilot CLI a obtener contenido controlado por atacantes o no confiable y confirme que quiere desencadenar la acción, por lo que no es una vulnerabilidad del producto. Si bien no es un problema de seguridad del producto en sí, siempre buscamos oportunidades para mejorar nuestros productos” .
La posición de GitHub es clara: el usuario es responsable de las consecuencias de ejecutar el agente en modo automático sobre contenido no confiable.
Descubre más desde CIBERED
Suscríbete y recibe las últimas entradas en tu correo electrónico.

