alexi.sh
Todos los artículosSeguridad del navegadorPrivacidad de redHerramientas de privacidadModelado de amenazasProgramación con IAHerramientas de dev

alexi.shLaboratorio de IA

ai-coding

GitLost: un issue público engañó al agente de IA de GitHub para filtrar repos privados

PrivSec Lab3 min de lectura
Código fuente colorido llenando una pantalla oscura

La empresa de seguridad Noma reveló GitLost, un fallo de inyección de prompt en GitHub Agentic Workflows. Un issue público manipulado hizo que el agente de IA filtrara datos de repos privados. Cómo funcionó el ataque y qué enseña.

La empresa de seguridad Noma reveló GitLost, un fallo que permitió que un simple issue público de GitHub engañara al agente de IA de GitHub para filtrar datos de repos privados. Según Noma, cuyo trabajo recogieron Dark Reading, The Hacker News y SiliconANGLE, el truco no necesitaba código ni cuenta en el objetivo. Es un caso de manual de los riesgos de la seguridad de agentes de IA. Así funcionó.

Qué son GitHub Agentic Workflows

GitHub lanzó hace poco Agentic Workflows, que combina GitHub Actions - su sistema de automatización - con un agente de IA impulsado por Claude o GitHub Copilot. Los equipos escriben el workflow en Markdown, y el agente lee issues, llama a herramientas y responde solo. Es un verdadero agente de código de IA conectado a tus repositorios.

El problema: un agente autónomo actúa sobre cualquier texto que lee. Y parte de ese texto viene de fuentes públicas no confiables.

Una mano sosteniendo un pequeño candado de latón

Cómo funcionó el ataque

Según Noma, el exploit usó inyección de prompt indirecta - instrucciones hostiles enterradas en el contenido que el agente lee, que el modelo luego sigue como si vinieran de su operador.

El workflow vulnerable se activaba al asignar un issue. Leía el título y el cuerpo, publicaba un comentario en respuesta, y corría con acceso de lectura a los repos públicos y privados de la organización. El ataque, paso a paso:

  • Un atacante abrió un issue público en un repo público de la misma organización.
  • Ocultos en el cuerpo, presentados como una petición rutinaria de un comercial, había comandos en lenguaje claro para el agente.
  • Cuando la automatización de GitHub lo asignó, el agente los siguió: obtuvo archivos README de un repo público y uno privado.
  • Luego publicó ese contenido privado como comentario público legible por cualquiera.

Sin código de exploit. Sin login en el objetivo. Solo un issue bien redactado.

Por qué importa

GitLost no es un bug en una línea de código. Es el riesgo central de la IA agéntica: un agente con acceso amplio de lectura que además lee entrada no confiable puede ser dirigido por esa entrada. El modelo no distingue de forma fiable "instrucciones de mi operador" de "texto de un issue que me dijeron que leyera".

Es la misma debilidad que hay detrás de la inyección de prompt en general, aquí apuntando a un producto real con acceso a código privado.

Cómo protegerte

  • Mínimo privilegio. No des a un workflow de agente acceso amplio de lectura a repos privados que no necesita.
  • Desconfía de los disparadores no confiables. Cuidado con los workflows activados por issues, comentarios o pull requests públicos: es texto controlado por el atacante.
  • Separa instrucciones y datos. Trata todo lo que el agente lee como datos, no comandos, y mantén tu prompt de confianza aparte.
  • Humano en el bucle. Exige revisión antes de que un agente publique o actúe sobre algo sensible.

La conclusión honesta

Dos matices. Primero, GitLost se divulgó de forma responsable a GitHub - es una debilidad demostrada, recogida por medios de seguridad, no prueba de explotación masiva. Segundo, el arreglo no es exótico: mínimo privilegio, higiene de entrada no confiable y revisión humana son seguridad estándar, aplicada a una nueva superficie agéntica.

La lectura honesta: los workflows agénticos son potentes porque leen tus issues y actúan sobre tus repos, y peligrosos por exactamente la misma razón. Al conectar agentes a sistemas reales, asume que cualquier texto que leen podría ser una instrucción, y limita lo que pueden alcanzar. Para elegir de entrada modelos capaces y bien portados, nuestro resumen de mejores LLM de código 2026 ayuda.

Foto: Pexels (source)

También disponible en

FAQ

Qué es la vulnerabilidad GitLost?
Según la empresa de seguridad Noma, cuyo trabajo recogieron Dark Reading, The Hacker News y SiliconANGLE, GitLost es un fallo de inyección de prompt en GitHub Agentic Workflows. Un atacante publicó un issue público manipulado cuyas instrucciones ocultas llevaron al agente de IA a leer archivos de repos privados y publicarlos como comentario público. Se divulgó de forma responsable a GitHub.
Cómo funcionó el ataque GitLost?
Usó inyección de prompt indirecta. Un workflow vulnerable se activaba al asignar un issue, leía su título y cuerpo, y corría con acceso de lectura a los repos públicos y privados de la organización. Un atacante abrió un issue público con comandos en lenguaje claro ocultos en el cuerpo, presentados como una petición rutinaria. Al asignarlo la automatización, el agente obtuvo archivos README de un repo privado y los publicó. Sin código y sin cuenta en el objetivo.
Qué son GitHub Agentic Workflows?
Según GitHub, Agentic Workflows combina GitHub Actions con un agente de IA impulsado por Claude o GitHub Copilot. Los equipos escriben los workflows en Markdown, y el agente lee issues, llama a herramientas y responde solo. Esa autonomía es útil, pero significa que el agente actúa sobre cualquier texto que lee, incluida entrada pública no confiable.
Cómo me protejo de este tipo de fallo?
Da mínimo privilegio a los workflows de agente: no concedas acceso amplio de lectura a repos privados, y desconfía de los disparadores que leen entrada no confiable como los issues públicos. Trata todo lo que el agente lee como no confiable, separa las instrucciones que confías de los datos que no, y exige revisión humana antes de que un agente publique o actúe sobre contenido sensible.