Una vulnerabilidad de inyección indirecta de prompts descubierta en el asistente de inteligencia artificial GitLab Duo podría haber permitido a atacantes robar código fuente confidencial, exfiltrar vulnerabilidades no divulgadas y manipular sugerencias de código. La falla también exponía a los usuarios a ataques de redirección maliciosa mediante inyecciones HTML ocultas.
¿Qué es GitLab Duo?
GitLab Duo es un asistente de codificación basado en IA, lanzado en 2023 y construido sobre modelos de lenguaje de Anthropic (Claude). Se integra en los flujos de trabajo de desarrollo para ayudar a escribir, revisar y editar código.
Naturaleza de la vulnerabilidad
- Tipo de ataque:
Inyección indirecta de prompts (indirect prompt injection), donde las instrucciones maliciosas se ocultan dentro de contenidos que la IA procesa como contexto (e.g., descripciones de merge requests, comentarios, commits o el propio código fuente). - Consecuencias potenciales:
- Exfiltración de código privado a servidores controlados por el atacante
- Inserción de URLs maliciosas que redirigen a sitios de phishing
- Inclusión de paquetes maliciosos en código sugerido por Duo
- Manipulación de sugerencias de código a otros usuarios
- Inyección de HTML ejecutable mediante streaming markdown rendering
- Técnicas de evasión utilizadas:
Los atacantes utilizaron codificación en Base16, Unicode smuggling, y representaciones en blanco vía KaTeX para ocultar los prompts dentro del contenido legítimo.
Riesgos y exposición
GitLab Duo analizaba el contexto completo de las páginas, incluyendo metadatos y código, sin aplicar sanitización estricta al contenido no estructurado. Esto permitía que una instrucción maliciosa oculta se procesara como parte del input válido del modelo, comprometiendo la integridad de su respuesta.
Además, su motor de renderizado HTML sobre markdown permitía la ejecución de contenido HTML en navegadores, abriendo la puerta a ataques de XSS persistente.
Mitigación y estado actual
- Fecha de divulgación responsable: 12 de febrero de 2025
- Estado: GitLab ha corregido la vulnerabilidad tras la notificación de Legit Security.
- Lecciones clave:
Esta vulnerabilidad evidencia los riesgos de integrar asistentes de IA profundamente en entornos de desarrollo sin controles adecuados. Cuando estos modelos procesan contexto sin validación, heredan no solo utilidad, sino también superficie de ataque.
Contexto adicional
Este caso se suma a otras investigaciones recientes que muestran cómo sistemas basados en LLM pueden ser vulnerables a:
- Jailbreaks (elusión de restricciones de seguridad)
- Prompt Leakage (filtración de instrucciones del sistema)
- Alucinaciones (respuestas incorrectas o fabricadas por modelos que intentan ser concisos)