Ocultaste un repositorio, pero un asistente de IA filtró todo su contenido: análisis de la vulnerabilidad GitLos

Ocultaste un repositorio, pero un asistente de IA filtró todo su contenido: análisis de la vulnerabilidad GitLos

El sistema ejecutó una orden ajena sin detectar la manipulación de las instrucciones.

image

Una típica incidencia en un sistema de seguimiento de errores puede convertirse en un comando oculto para una IA. Especialistas de Noma Labs demostraron cómo, mediante un solo issue de GitHub, lograr que GitHub Agentic Workflows revele el contenido de un repositorio privado en un comentario público.

GitHub Agentic Workflows combina GitHub Actions con un agente de IA basado en Claude o GitHub Copilot. Los equipos describen la automatización en lenguaje natural; luego el agente lee las incidencias, accede a archivos, ejecuta herramientas y publica respuestas con los permisos establecidos por el propietario del proyecto.

La vulnerabilidad GitLost surgía por una inyección indirecta de comandos. El flujo de trabajo se ejecutaba tras asignar la incidencia, leía su título y texto, y luego podía añadir comentarios y examinar repositorios públicos y privados de la organización. El agente no separaba las instrucciones internas del texto de un usuario externo, por lo que interpretaba frases incluidas en la incidencia como comandos.

En una demostración de prueba, Noma Labs creó una incidencia verosímil en nombre del vicepresidente de ventas. Tras asignar la incidencia, el agente obtuvo los archivos README.md de un repositorio público y de otro privado, luego combinó el contenido y lo publicó en un comentario accesible públicamente. Los especialistas no describieron un ataque real contra proyectos ajenos.

Las restricciones de protección se pudieron eludir con una formulación sencilla. Añadir una palabra en inglés equivalente a «además» cambiaba la estructura de la respuesta del modelo y no provocaba un rechazo, aunque la solicitud exigía revelar los datos. La demostración mostró que las incidencias, los comentarios y los archivos pueden convertirse en instrucciones si el sistema no separa las órdenes de los datos a procesar.

Noma Labs entregó la información a GitHub como parte de una divulgación responsable. Para reducir el riesgo, se recomienda a los desarrolladores no considerar el texto del usuario como confiable, conceder a los agentes solo los permisos mínimos, limitar la publicación de datos en comentarios públicos e aislar la entrada del usuario de las instrucciones internas antes de procesarla con el modelo.