- CamoLeak permitió extraer secretos de repositorios privados a través de comentarios ocultos y el proxy de imágenes Camo.
- La vulnerabilidad explotaba que Copilot Chat opera con los permisos del usuario y procesa contexto no visible en la interfaz.
- GitHub mitigó el vector el 14 de agosto: deshabilitó el renderizado de imágenes en Copilot Chat y bloqueó la vía de exfiltración vía Camo.
- Se recomienda reducir la superficie de ataque y vigilar posibles fugas con controles de red y políticas de acceso.

Una investigación de Legit Security desveló una vulnerabilidad crítica en GitHub Copilot Chat, bautizada como CamoLeak, que permitía sacar a la luz secretos, fragmentos de código privado e incluso descripciones de fallos no publicados desde repositorios privados.
La brecha combinaba inyección de instrucciones en contexto con un ingenioso uso del proxy de imágenes de GitHub, Camo, y fue puntuada con 9,6 en la escala CVSS. GitHub ha aplicado mitigaciones: el 14 de agosto deshabilitó el renderizado de imágenes en Copilot Chat y bloqueó el uso de Camo como canal de fuga, mientras trabaja en medidas a más largo plazo.
¿Qué ha pasado exactamente?
Copilot Chat funciona con los permisos del usuario autenticado y aprovecha el contexto del repositorio para responder, algo que también refleja la creciente adopción de asistentes de IA en IDEs. El investigador Omer Mayraz demostró que un atacante podía esconder instrucciones maliciosas en comentarios de markdown invisibles dentro de pull requests o issues, contenido que no se muestra en la web pero que el asistente sí procesa al resumir o revisar cambios.
Al solicitar a Copilot un resumen o una revisión, el asistente obedecía las órdenes ocultas, pudiendo buscar en el repositorio claves, tokens o archivos sensibles y exponer esa información en sus respuestas o a través de otros trucos. Además, el efecto se extendía a cualquier persona que cargase la misma página con el contexto contaminado, no solo al que introdujo el comentario.

Cómo se convirtió Camo en un canal de exfiltración
Normalmente, GitHub blinda la carga de recursos externos mediante una estricta política CSP y su proxy de imágenes, Camo. Las imágenes externas se reescriben a camo.githubusercontent.com con una firma criptográfica, impidiendo peticiones arbitrarias hacia dominios de terceros desde el navegador del usuario.
Para sortear ese freno, el investigador pre-generó un diccionario de URLs válidas de Camo, una por cada letra y símbolo. Luego instruyó a Copilot para que expresara el secreto encontrado como una secuencia de imágenes de 1×1 píxel, cada una representando un carácter. Observando en qué orden se solicitaban esos píxeles a través de Camo, el atacante podía reconstruir el texto robado carácter a carácter.
El montaje resultaba casi invisible: un servidor devolvía píxeles transparentes, se añadían parámetros aleatorios para evitar la caché y el asistente componía la salida con enlaces firmados que parecían cargas inocuas, cuando en realidad escondían datos sensibles.

Impacto y alcance observados
Las pruebas de concepto mostraron la extracción de claves de AWS, tokens de seguridad y la descripción de una vulnerabilidad de día cero alojada en un issue privado, lo que recuerda otros incidentes de filtración del código fuente. Como Copilot actúa con los permisos del usuario que lo invoca, bastaba con que un mantenedor abriera la página afectada y pidiera un resumen para activar la cadena.
Los investigadores apuntan que la técnica es más eficaz para exfiltrar piezas pequeñas de información que para sacar grandes volúmenes de código, pero subrayan el mensaje de fondo: al introducir asistentes de IA en el flujo de trabajo, la superficie de ataque se amplía a cualquier cosa que el agente pueda leer o ejecutar.
Respuesta de GitHub y estado actual
Tras el reporte a través de HackerOne, GitHub cortó la vía principal de exfiltración: el 14 de agosto deshabilitó el renderizado de imágenes en Copilot Chat y bloqueó el uso de Camo para sacar contenido sensible del usuario víctima, cerrando el canal mientras prepara una solución definitiva.
Las comunicaciones públicas describen el problema como resuelto en esa fecha, y los cambios reducen de forma significativa el riesgo de explotación del mismo vector. Aun así, los expertos recuerdan que la inyección de prompts es un reto persistente y exige una vigilancia continuada.
Recomendaciones prácticas para equipos
- Revisa qué contexto ve el asistente antes de pedir resúmenes o revisiones en PRs con contenido de terceros o de origen desconocido.
- Aplica principios de mínimo privilegio: limita el acceso del asistente a repositorios que contengan secretos o material altamente sensible.
- Refuerza la higiene de secretos y archivos de exclusión: usa ficheros de ignore y herramientas de secret scanning para evitar que credenciales vivan en el repositorio.
- Monitoriza posibles fugas con controles de red: la detección de exfiltración por canales encubiertos puede requerir telemetría y alertas en la salida.
Para quienes dependen de Copilot en su día a día, el incidente deja varias lecciones: cuidar el contexto que el agente consume, endurecer políticas de acceso y asumir que ciertos vectores de inyección seguirán intentando colarse; con las mitigaciones activas por parte de GitHub, el riesgo de este caso concreto se ha reducido, pero conviene mantener la guardia alta.