CVE-2026-74790: Kritisk hul i Scriban skabelonmotor
Kritisk fejl i skabelonmotoren Scriban (CVE-2026-74790) kan lække data på tværs af brugere. Opdatér til version 7.0.0.
Hvad er det?
Scriban er en skabelonmotor til .NET, som udviklere bruger til at generere tekst, HTML eller e-mails dynamisk ud fra data. I Scriban før version 7.0.0 gemmer motoren en genvej til objekters felter (en TypedObjectAccessor) kun ud fra objektets type, uden at tage højde for, at et medlemsfilter (MemberFilter) kan være blevet strammet siden sidst. Et medlemsfilter bestemmer, hvilke felter en skabelon må se. Når en TemplateContext, altså den kørende skabelonsession, genbruges på tværs af forespørgsler eller kunder, kan felter, der burde være skjult, alligevel blive vist eller ændret.
Hvem rammer det?
Det rammer virksomheder, der har udviklet egne .NET-applikationer, CMS-løsninger eller multi-tenant SaaS-platforme, hvor Scriban bruges til at rendere skabeloner med adgangsbegrænsning på objektfelter. Er der tale om en sandkasse-model, hvor forskellige kunder eller brugere kun må se udvalgte data i samme applikation, er risikoen størst. Alle versioner af Scriban før 7.0.0 er berørt.
Hvad kan ske?
En bruger kan komme til at se data, som var filtreret væk, for eksempel en anden kundes oplysninger, interne systemfelter eller data, der kun burde vises til administratorer. Fordi sårbarheden også giver mulighed for at ændre felter, der skulle have været skrivebeskyttede, kan data i værste fald blive korrumperet eller manipuleret på tværs af kunder eller sessioner.
Hvor alvorligt er det?
CVSS-scoren er 9,1 ud af 10, hvilket er kritisk. Angrebet kræver ikke login og ingen handling fra en bruger. Det kan udføres over netværket med lav teknisk kompleksitet, så snart et system genbruger en TemplateContext-instans på tværs af forespørgsler. Der er ikke oplyst om aktiv udnyttelse på offentliggørelsesdatoen, men fejlen er let at forstå og udnytte for en angriber, der kender arkitekturen.
Hvad gør jeg nu?
Følgende trin lukker hullet og begrænser skaden, hvis det allerede er udnyttet:
- Opdatér Scriban til version 7.0.0 eller nyere i alle projekter og tjenester, der bruger biblioteket.
- Gennemgå jeres kodebase eller bed jeres leverandør bekræfte, om Scriban indgår som afhængighed, direkte eller via et andet bibliotek.
- Indtil opdateringen er rullet ud, undgå at genbruge TemplateContext-instanser på tværs af brugere, kunder eller forespørgsler med forskellige medlemsfiltre.
- Gennemgå logfiler for usædvanlig adgang til data, der normalt er filtreret væk, særligt i multi-tenant løsninger.
- Vurdér om personoplysninger kan være blevet eksponeret, og involvér jeres databeskyttelsesrådgiver hvis det er tilfældet.
- Har I ikke selv udviklerressourcer til at finde og opdatere afhængigheden, så bed jeres it-leverandør eller en sikkerhedsrådgiver om hjælp hurtigst muligt.
Opdatér til Scriban 7.0.0 snarest
Vi anbefaler, at I opdaterer Scriban til version 7.0.0 i alle jeres applikationer, så snart det er praktisk muligt, da sårbarheden kræver hverken login eller brugerhandling. Er Scriban en indirekte afhængighed hos en leverandør, bør I bede leverandøren bekræfte, at de har opdateret. Det er kun forsvarligt at vente, hvis I med sikkerhed kan udelukke, at jeres applikation genbruger TemplateContext på tværs af brugere eller kunder.
Tidslinje
Konkrete eksempler
Multi-tenant kundeportal hos en dansk SaaS-udbyder
En dansk SaaS-virksomhed bruger Scriban til at generere kundespecifikke rapporter i en fælles portal, hvor et medlemsfilter skjuler andre kunders data. Fordi filteret strammes forskelligt fra kunde til kunde, men skabelonmotorens interne genvej ikke opdateres korrekt, kan én kunde ved et tilfælde komme til at se felter fra en anden kundes datasæt, når sessionen genbruges internt på serveren.
Ofte stillede spørgsmål
Er vi ramt af denne sårbarhed?
I er ramt, hvis jeres virksomhed selv har udviklet .NET-applikationer, der bruger Scriban til skabelonrendering, eller hvis en leverandør bruger det i en løsning I anvender. Tjek jeres afhængigheder eller spørg leverandøren.
Hvordan tjekker vi, om vi bruger Scriban?
Søg efter Scriban i NuGet-pakkereferencer, .csproj-filer eller packages.config i jeres projekter. Bed også jeres it-leverandør bekræfte, om biblioteket indgår i deres løsning.
Kan vi vente til weekenden med at opdatere?
Det anbefaler vi ikke, hvis jeres system er tilgængeligt over netværket og genbruger skabelonsessioner på tværs af brugere. Angrebet kræver ingen godkendelse, så eksponeringen løber, indtil opdateringen er gennemført.
Skal vi anmelde hændelsen til Datatilsynet?
Kun hvis I kan konstatere eller mistænke, at personoplysninger faktisk er blevet eksponeret via sårbarheden. Vurdér dette sammen med jeres databeskyttelsesrådgiver, før I beslutter om der er tale om et brud på persondatasikkerheden.
Rammer det os, hvis vi ikke har en multi-tenant løsning?
Risikoen er størst i multi-tenant systemer, men enhver applikation, der genbruger TemplateContext-instanser med forskellige medlemsfiltre på tværs af forespørgsler, kan i princippet være berørt.
Er der en midlertidig løsning, hvis vi ikke kan opdatere med det samme?
Ja, undgå at genbruge TemplateContext-instanser på tværs af brugere eller sessioner med forskellige medlemsfiltre, indtil I har opdateret til version 7.0.0.
CVSS-detaljer
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N
CWE-svaghedstyper
Original NVD-beskrivelse (engelsk)
Scriban before 7.0.0 caches TypedObjectAccessor by Type only without considering MemberFilter changes, allowing reused TemplateContext instances to expose members that should be hidden. Attackers can access filtered properties and fields by reusing a TemplateContext after tightening its MemberFilter, bypassing sandbox policies across requests or tenants.
Referencer & kilder
Eksterne kilder
Brug for hjælp med jeres sikkerhed?
Vi hjælper SMV’er med at omsætte trusler som denne til konkrete handlingsplaner.