En promptmall som inte var en sandlåda

GitLab har åtgärdat ett kritiskt fel i sin AI Gateway som lät en autentiserad användare bryta sig ut ur en promptmall och köra godtyckliga kommandon på värden under. Sårbarheten, CVE-2026-90970, har CVSS-poängen 9,9.

Mekanismen är det som är värt att läsa. AI Gateway behandlar egna flödeskonfigurationer genom platshållare i Jinja2-stil. Eftersom de användarlämnade konfigurationsdata inte neutraliserades ordentligt kunde en angripare med åtkomst till Duo Agent Platform skapa en flödeskonfiguration som manipulerade mallmotorn och tog sig ur den sandlåda den skulle köras i. GitLab klassar det som CWE-1336, bristfällig neutralisering av specialelement i en mallmotor.

Security Affairs rapporterade att felet berör AI Gateway-versionerna 18.1.6 till 19.2.3, 19.3.0 till 19.3.1 och 19.4.0. Rättningarna finns i 19.2.4, 19.3.2 och 19.4.1, som släpptes den 2 oktober. Det rapporterades via HackerOne av en forskare under namnet invisiblemeerkat.

GitLab publicerade rättningarna som en del av en samlad patchutgåva. För den som kör en egen gateway är åtgärden enkel: uppgradera till någon av de tre rättade versionerna. Det finns ingen tillfällig lösning som ersätter uppgraderingen, eftersom felet sitter i hur själva mallmotorn behandlar den konfiguration användaren matar in.

En elcentral med rader av dvärgbrytare
Åtkomst till Duo Agent Platform krävs, så angreppet förutsätter autentisering. Illustration. ranjeet . · pexels · Pexels License

Vem som måste agera

Självhostade installationer är de utsatta. GitLabs egna hostade gateways var redan åtgärdade, så kunder på GitLab.com och GitLab Dedicated, och självförvaltade kunder som använder den hostade gatewayen, behöver inte göra något. Den som kör en egen AI Gateway måste uppgradera.

Angreppet kräver autentisering. Det förutsätter ett giltigt konto med åtkomst till Duo Agent Platform, vilket smalnar av exponeringen rejält: en insider, ett kapat utvecklarkonto, eller en instans där självbetjäningsregistrering delar ut Duo-åtkomst. GitLab uppger inga tecken på utnyttjande i verkligheten, och CISA:s bedömning som lades till CVE-posten den 2 oktober anger utnyttjandet som inget.

Problemets form

En mallmotor som interpolerar opålitliga strängar är en gammal sårbarhetsklass med en ny yta. Serverside template injection har varit känd i ett decennium; det nya är att den opålitliga strängen nu är en agentflödeskonfiguration, skriven av en användare som nominellt har rätt att konfigurera agenten.

Närbild på en grå asfaltsyta
Rättningarna kom i AI Gateway-versionerna 19.2.4, 19.3.2 och 19.4.1. Illustration. Engin Akyurt · pexels · Pexels License

Det är det strukturella problemet i hela kategorin. AI-gateways finns för att sitta mellan en utvecklare och en modell, och värdet kommer av att låta användare definiera prompter, flöden och verktygskonfigurationer. Varje sådan definition är användarindata som når en tolk, och en promptmall är ingen säkerhetsgräns om den inte byggts som en.

Det som är värt att följa är hur många jämförbara produkter som har samma form. GitLabs är den som har ett CVE-nummer den här veckan; mönstret att ta emot användarskriven flödeskonfiguration i en mallmotor är inte unikt för den.