CVE-2026-54386: XSS-sårbarhed i marimo notebook
Fejl i marimo før version 0.23.9 gør det muligt at injicere JavaScript via et link. Opdatér til 0.23.9 eller nyere.
Hvad er det?
CVE-2026-54386 er en reflekteret cross-site scripting sårbarhed (XSS), hvor ondsindet JavaScript-kode gemmes i et link og køres i offerets browser, når linket åbnes. Fejlen findes i notebook-siden i marimo, et pythonbaseret værktøj til interaktive notebooks, før version 0.23.9. Problemet skyldes, at enkelte anførselstegn i URL-parameteren ‘file’ ikke escapes korrekt, når værdien indsættes i en JavaScript-streng på siden. Angriberen kan starte sit payload med teksten __new__ for at omgå en indbygget 404-kontrol, og koden kører uden begrænsninger fra Content-Security-Policy, en sikkerhedsmekanisme der normalt begrænser hvilke scripts en side må køre. Koden afvikles i marimo-serverens egen kontekst, som offeret er logget ind på.
Hvem rammer det?
Alle virksomheder og forskningsmiljøer, der kører marimo-notebooks i version før 0.23.9, og hvor brugere kan tilgås via delte links, for eksempel i interne dataanalyse-teams, dataloger eller udviklingsafdelinger. Det gælder både lokale installationer og marimo-servere, der er tilgængelige internt på netværket eller eksternt.
Hvad kan ske?
En angriber sender et link, der ser ud som et normalt marimo-link, til en medarbejder. Klikker medarbejderen på linket, mens vedkommende er logget ind på marimo-serveren, kan angriberens JavaScript køre i browseren med medarbejderens rettigheder. Det kan bruges til at stjæle sessionsoplysninger, ændre indhold på siden eller udføre handlinger på serveren, som offeret har adgang til. Der er ikke risiko for direkte nedbrud af systemet, men fortrolighed og dataintegritet i den aktive session er i fare.
Hvor alvorligt er det?
CVSS-scoren er 6,1 af 10, moderat risiko. Angrebet kræver ingen login eller adgangskoder (PR:N), men det kræver, at offeret klikker på et link (UI:R), hvilket gør det til en phishing-lignende metode snarere end et selvkørende angreb. Konsekvensen er begrænset til fortrolighed og integritet i lav grad, og der er ingen påvirkning af systemets tilgængelighed. Der er ingen oplysninger om, at sårbarheden aktivt udnyttes i angreb på tidspunktet for offentliggørelsen.
Hvad gør jeg nu?
Følg disse trin for at lukke sårbarheden og begrænse skaden, hvis den allerede er udnyttet:
- Opdatér marimo til version 0.23.9 eller nyere, hvor escaping af filparameteren er rettet.
- Gennemgå logs på marimo-serveren for usædvanlige links eller anmodninger med parameteren ‘file’ der starter med __new__.
- Informér medarbejdere, der bruger marimo, om ikke at klikke på notebook-links fra ukendte afsendere, indtil opdateringen er gennemført.
- Overvej at begrænse adgang til marimo-servere til interne netværk eller VPN, hvis det ikke allerede er tilfældet.
- Kontakt en sikkerhedsrådgiver, hvis I ikke selv kan verificere, at opdateringen er installeret korrekt, eller hvis I finder tegn på udnyttelse i logs.
Opdatér ved næste planlagte vindue
Vi anbefaler, at I opdaterer marimo til version 0.23.9 eller nyere som en del af jeres normale opdateringsrutine. Da sårbarheden kræver brugerinteraktion og ikke er kendt udnyttet, er det acceptabelt at vente til næste planlagte vedligeholdelsesvindue, så længe det sker inden for kort tid. Er marimo-serveren tilgængelig fra internettet, bør opdateringen prioriteres højere.
Tidslinje
Konkrete eksempler
Phishing-link til dataanalyseteam
En angriber sender en e-mail til en dataanalytiker i en dansk virksomhed med et link, der ser ud til at åbne en marimo-notebook med en kvartalsrapport. Analytikeren er logget ind på virksomhedens marimo-server og klikker på linket. Ondsindet JavaScript kører i baggrunden og forsøger at hente analytikerens sessionsoplysninger, som angriberen efterfølgende kan bruge til at tilgå andre notebooks på serveren.
Ofte stillede spørgsmål
Er vi ramt af CVE-2026-54386?
I er ramt, hvis I kører marimo i en version ældre end 0.23.9. Tjek versionen i jeres installation eller i requirements-filen for projektet.
Hvordan tjekker vi, om sårbarheden er udnyttet hos os?
Gennemgå adgangslogs på marimo-serveren for anmodninger, hvor parameteren ‘file’ indeholder __new__ eller usædvanlige tegn som anførselstegn og script-tags.
Kan vi vente til weekenden med at opdatere?
Ja, hvis marimo-serveren kun er tilgængelig internt og der ikke er tegn på udnyttelse. Er serveren eksponeret på internettet, bør opdateringen ske hurtigere.
Kræver det, at vi er logget ind for at blive ramt?
Ja, angrebet udnytter den session, offeret allerede har med marimo-serveren. Uden en aktiv session er der ikke noget at udnytte.
Skal vi anmelde dette til myndighederne?
Kun hvis I konstaterer, at sårbarheden faktisk er blevet udnyttet og persondata er kompromitteret. Er der ingen tegn på udnyttelse, er en opdatering tilstrækkelig.
Hvad gør Content-Security-Policy normalt, og hvorfor virker det ikke her?
Content-Security-Policy er en sikkerhedsmekanisme, der begrænser hvilke scripts en webside må køre. I dette tilfælde udnytter angrebet en svaghed i selve siden, så det ondsindede script anses som legitimt indhold og derfor ikke blokeres.
CVSS-detaljer
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N
CWE-svaghedstyper
Original NVD-beskrivelse (engelsk)
marimo before 0.23.9 contains a reflected cross-site scripting vulnerability in the notebook page that allows unauthenticated attackers to inject arbitrary JavaScript by exploiting improper escaping of single quotes in the file query parameter reflected into an inline JavaScript string literal. Attackers can craft a malicious link with a payload beginning with __new__ to bypass the 404 check and inject JavaScript into the page, which executes without Content-Security-Policy restrictions in the origin of a victim’s marimo server.
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.