CVE-2026-73061: Kritisk fejl i skabelonmotoren Scriban
Fejl i skabelonmotoren Scriban (CVE-2026-73061) lader angribere skrive i beskyttede objektfelter. Opdatér til version 7.2.2.
Hvad er det?
CVE-2026-73061 er en sårbarhed i Scriban, en skabelonmotor der bruges i .NET-programmer til at generere tekst, e-mails og rapporter ud fra skabeloner. Fejlen sidder i en komponent kaldet TypedObjectAccessor, som er ansvarlig for at læse og skrive data på objekter, når en skabelon udføres. Normalt beskytter en programmørs kode visse felter med adgangsmodifikatorer, altså regler for hvem der må ændre dem, for eksempel private eller kun-ved-oprettelse felter. På grund af fejlen springer Scriban disse regler over, så kode i selve skabelonen kan skrive direkte i felter, den ikke burde have adgang til. Angriberen kan også udnytte mass assignment, hvor mange felter sættes på én gang, til at ændre data der normalt kun må sættes af programmet selv. Ændringerne sidder fast i det kørende program, efter skabelonen er blevet udført.
Hvem rammer det?
Sårbarheden rammer alle .NET-baserede programmer, der bruger Scriban i version før 7.2.2. Det gælder især systemer, hvor skabeloner helt eller delvist bygges ud fra data, som kommer udefra, for eksempel kundetilpassede e-mailskabeloner, rapportgeneratorer, CMS-løsninger eller fakturasystemer. Er skabelonerne fastlåste og skrevet af egne udviklere uden ekstern indflydelse, er risikoen lavere, men versionen bør stadig opdateres.
Hvad kan ske?
En angriber, der kan påvirke indholdet af en skabelon, kan ændre data i det bagvedliggende program, som normalt er beskyttet. I praksis kan det betyde, at en bruger kan hæve sin egen rolle til administrator, ændre en pris i en ordre, eller manipulere status på en sag, uden at gå igennem den normale forretningslogik. Fordi ændringen sker direkte på objektet i hukommelsen, kan den forblive usynlig for almindelig logning, indtil skaden er sket.
Hvor alvorligt er det?
CVSS-score er 9,8 ud af 10, hvilket er kritisk. Angrebet kræver hverken login eller brugerhandling og kan udføres over netværket med lav teknisk kompleksitet. Konsekvensen rammer alle tre områder: fortrolighed, integritet og tilgængelighed kan alle kompromitteres fuldt ud. Der er ikke kendte tilfælde af aktiv udnyttelse på offentliggørelsestidspunktet, men det kritiske CVSS-tal og den lave angrebskompleksitet betyder, at det er en oplagt fejl at bygge et angreb omkring, så snart detaljerne er kendt bredt.
Hvad gør jeg nu?
Følg disse trin for at lukke hullet og begrænse risikoen, mens I opdaterer.
- Opdatér Scriban-pakken til version 7.2.2 eller nyere i alle programmer, der bruger den. Dette lukker selve fejlen.
- Lav en oversigt over, hvilke af jeres .NET-programmer der bruger Scriban, og om skabelonerne kan påvirkes af eksterne brugere eller kunder.
- Gennemgå logs for usædvanlige ændringer i objekter, der normalt kun kan ændres af programmet selv, for eksempel roller, priser eller status på ordrer.
- Indtil opdateringen er gennemført, bør I begrænse eller midlertidigt deaktivere funktioner, hvor brugere kan indsende eller redigere skabeloner.
- Test opdateringen i et testmiljø, hvis Scriban indgår i forretningskritiske systemer, da ændringer i adgangskontrol kan påvirke eksisterende skabeloner.
- Kontakt en ekstern sikkerhedsrådgiver, hvis I ikke selv har overblik over, hvor Scriban bruges i jeres kodebase, eller hvis I finder tegn på misbrug i logs.
Opdatér inden for 72 timer
Vi anbefaler, at I opdaterer Scriban til version 7.2.2 eller nyere så hurtigt som muligt, især hvis skabeloner i jeres systemer kan påvirkes af brugere eller kunder udefra. Er Scriban kun brugt til faste, interne skabeloner uden ekstern input, kan opdateringen planlægges ind i næste ordinære vedligeholdelsesvindue, men bør ikke udsættes længere end en uge. Det er ikke forsvarligt at vente på en hændelse, før I opdaterer, da fejlen er kritisk og let at udnytte, hvis en angriber først finder vej til en skabelon.
Tidslinje
Konkrete eksempler
Kundetilpasset e-mailskabelon i en webshop
En dansk webshop lader erhvervskunder tilpasse deres egne ordrebekræftelsesskabeloner via et administrationsmodul, der bruger Scriban til at generere e-mails. En kunde indsætter skabelonkode, der ændrer på et internt objekt for ordrestatus og rabat, som normalt kun systemet selv må sætte. Resultatet er, at ordren registreres som betalt med fuld rabat, selvom betalingen aldrig er gennemført.
Ofte stillede spørgsmål
Hvordan finder vi ud af, om vi bruger Scriban?
Tjek jeres .NET-projekters pakkereferencer, for eksempel i filer som .csproj eller packages.config, for pakken ‘Scriban’. Er I i tvivl, kan jeres udviklere søge efter navnet i kildekoden eller i byggeserverens pakkelister.
Er vi ramt, hvis vi kun bruger faste skabeloner uden brugerinput?
Risikoen er lavere, men ikke nul, hvis skabelonerne er fastlåste og ikke kan påvirkes udefra. Opdatér alligevel til 7.2.2, da fremtidige ændringer i skabelonerne ellers kan åbne hullet uden I opdager det.
Kan vi vente til den næste planlagte opdatering i weekenden?
Kan skabeloner påvirkes af eksterne brugere eller kunder, bør I opdatere før det, da sårbarheden kan udnyttes uden login. Er brugen rent intern og kontrolleret, kan I vente til nærmeste planlagte vindue, dog ikke længere end en uge.
Skal vi anmelde hændelsen til nogen?
Der er ikke pligt til at anmelde alene fordi I bruger en sårbar version. Finder I derimod tegn på, at nogen har udnyttet fejlen og fået adgang til personoplysninger, kan det udløse anmeldepligt efter databeskyttelsesreglerne, og I bør vurdere det konkret, gerne med juridisk rådgivning.
Hvordan opdaterer vi Scriban uden at ødelægge eksisterende skabeloner?
Opdatér pakken i et testmiljø først og kør jeres eksisterende skabeloner igennem, da den strammede adgangskontrol kan afsløre steder, hvor koden hidtil har været afhængig af den forkerte adfærd. Ret disse steder, før I opdaterer i produktion.
CVSS-detaljer
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
CWE-svaghedstyper
Original NVD-beskrivelse (engelsk)
Scriban before 7.2.2 contains an access-modifier bypass vulnerability in TypedObjectAccessor that allows template code to write CLR object properties without setter-visibility checks. Attackers can modify properties with private, internal, or init-only setters, and perform mass assignment on public-setter properties, permanently altering live host objects after template rendering.
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.