Una plantilla de prompt que no era una caja de arena
GitLab ha parcheado un fallo crítico en su AI Gateway que permitía a un usuario autenticado salirse de una plantilla de prompt y ejecutar comandos arbitrarios en el servidor subyacente. La vulnerabilidad, CVE-2026-90970, tiene una puntuación CVSS de 9,9.
El mecanismo es la parte interesante. El AI Gateway procesa configuraciones de flujo personalizadas mediante marcadores de plantilla al estilo Jinja2. Como los datos de configuración suministrados por el usuario no se neutralizaban correctamente, un atacante con acceso a Duo Agent Platform podía construir una configuración de flujo que manipulara el motor de plantillas y escapara de la caja de arena en la que debía ejecutarse. GitLab lo clasifica como CWE-1336, neutralización indebida de elementos especiales en un motor de plantillas.
Security Affairs informó de que el fallo afecta a las versiones 18.1.6 a 19.2.3, 19.3.0 a 19.3.1 y 19.4.0 del AI Gateway. Las correcciones están en las versiones 19.2.4, 19.3.2 y 19.4.1, publicadas el 2 de octubre. Se comunicó a través de HackerOne por un investigador con el alias invisiblemeerkat.

Quién tiene que actuar
Las instalaciones autoalojadas son las expuestas. Las pasarelas alojadas por GitLab ya estaban parcheadas, de modo que los clientes de GitLab.com y GitLab Dedicated, y los autogestionados que usan la pasarela alojada, no tienen que hacer nada. Quien ejecute su propio AI Gateway debe actualizar.
El ataque no es no autenticado. Requiere una cuenta válida con acceso a Duo Agent Platform, lo que reduce bastante la exposición: alguien de dentro, una cuenta de desarrollador comprometida, o cualquier instancia donde el registro automático reparta acceso a Duo. GitLab no ha informado de indicios de explotación real, y la valoración de CISA añadida al registro del CVE el 2 de octubre indica explotación nula.
La forma del problema
Un motor de plantillas que interpola cadenas no confiables es una clase de vulnerabilidad antigua con una superficie nueva. La inyección de plantillas del lado del servidor se entiende desde hace una década; lo nuevo es que la cadena no confiable es ahora una configuración de flujo de agente, escrita por un usuario a quien nominalmente se le permite configurar el agente.

Ese es el problema estructural de toda la categoría. Las pasarelas de IA existen para situarse entre un desarrollador y un modelo, y su valor viene de dejar que los usuarios definan prompts, flujos y configuraciones de herramientas. Cada una de esas definiciones es entrada de usuario que llega a un intérprete, y una plantilla de prompt no es una frontera de seguridad salvo que se haya construido como tal.
Lo que hay que vigilar es cuántos productos comparables tienen la misma forma. El de GitLab es el que esta semana tiene número de CVE; el patrón de aceptar configuraciones de flujo escritas por el usuario dentro de un motor de plantillas no es exclusivo suyo.