CVE-2026-78207: Kritisk fejl i exceljs-hardened
Kritisk sikkerhedshul i exceljs-hardened lader angribere ændre hele applikationens adfærd via en manipuleret Excel-note. Opdatér til version 5.0.0.
Hvad er det?
CVE-2026-78207 er en prototype pollution-sårbarhed, en fejl hvor angribere kan tilføje eller ændre egenskaber på JavaScripts grundlæggende objekt-skabelon (Object.prototype), i biblioteket exceljs-hardened før version 5.0.0. Fejlen sidder i en funktion kaldet deepMerge, som bruges til at samle data, når regnearket læser noter i celler. Funktionen tjekker ikke for de særlige nøgler __proto__, constructor og prototype. Sender man en note med disse nøgler, kan man skrive direkte ind i Object.prototype, som alle andre objekter i programmet arver fra. Det betyder, at én ondsindet Excel-fil kan ændre hele applikationens opførsel, ikke kun det konkrete regneark.
Hvem rammer det?
Alle virksomheder, der bruger Node.js-biblioteket exceljs-hardened i version lavere end 5.0.0 til at generere, læse eller behandle Excel-filer. Det gælder typisk webshops, økonomisystemer, HR-systemer og selvbetjeningsløsninger, hvor brugere kan uploade regneark eller hvor systemet automatisk eksporterer data til Excel. Er funktionaliteten tilgængelig for eksterne brugere uden login, er eksponeringen størst.
Hvad kan ske?
En angriber kan uploade eller sende en Excel-fil med en manipuleret celle-note. Når filen behandles af den sårbare kode, kan angriberen ændre egenskaber, som hele applikationen deler, for eksempel adgangskontrol, standardindstillinger eller valideringslogik. I praksis kan det føre til, at angriberen omgår login, læser data, de ikke må se, eller får serveren til at opføre sig anderledes end tiltænkt. Fortrolighed og integritet er hårdt ramt, mens driftsstabiliteten kan blive nedsat, men ikke nødvendigvis lammet.
Hvor alvorligt er det?
CVSS-score er 9,4 ud af 10, hvilket er kritisk. Sårbarheden kan udnyttes over netværket, kræver ikke login og kræver ikke, at en bruger klikker på noget eller udfører en handling. Det gør angrebet nemt at automatisere. Der er ikke fundet spor af aktiv udnyttelse på offentliggørelsestidspunktet, men den lave kompleksitet og manglen på krav om rettigheder betyder, at det kan ændre sig hurtigt, når sårbarheden bliver kendt.
Hvad gør jeg nu?
Prioritér disse skridt, så I lukker hullet og begrænser skaden:
- Opdatér exceljs-hardened til version 5.0.0 eller nyere i alle applikationer og tjenester, der bruger biblioteket.
- Gennemgå jeres kodebase for steder, hvor pakken bruges til at læse Excel-filer med celle-noter fra eksterne kilder, og bekræft at opdateringen dækker dem alle.
- Gennemgå logs for usædvanlige Excel-uploads eller fejl i forbindelse med regnearksbehandling forud for offentliggørelsen.
- Genstart berørte processer efter opdateringen, så eventuelle allerede forurenede objekter i hukommelsen bliver ryddet.
- Overvej at rotere følsomme nøgler og hemmeligheder, hvis systemet har været tilgængeligt for eksterne uploads uden opdatering.
- Kontakt en ekstern sikkerhedsrådgiver, hvis I ikke selv kan verificere, hvor pakken bruges, eller hvis I finder tegn på misbrug.
Opdatér inden for 48 timer
Vi anbefaler, at I opdaterer exceljs-hardened til version 5.0.0 med det samme, især hvis biblioteket modtager filer fra eksterne brugere. Det er kun forsvarligt at vente, hvis pakken udelukkende bruges internt til at generere rapporter fra data, I selv kontrollerer fuldt ud. I alle andre tilfælde bør opdateringen ske inden for få dage, da angrebet ikke kræver login eller brugerinteraktion.
Tidslinje
Konkrete eksempler
Webshop med Excel-import af varelister
En dansk webshop lader leverandører uploade Excel-filer med varelister til automatisk import. En leverandørs konto bliver kompromitteret, og angriberen indsætter en celle-note med en __proto__-nøgle i filen. Når webshoppens system behandler filen med exceljs-hardened, ændres Object.prototype, hvilket giver angriberen mulighed for at omgå adgangskontrollen og se andre kunders ordredata.
Ofte stillede spørgsmål
Hvordan finder vi ud af, om vi bruger den sårbare pakke?
Søg efter exceljs-hardened i jeres package.json eller package-lock.json filer for Node.js-projekter. Kør ‘npm list exceljs-hardened’ i projektmappen for at se den installerede version.
Er vi ramt, hvis vi kun bruger exceljs-hardened til interne rapporter?
Risikoen er lavere, men ikke væk. Hvis nogen af jeres medarbejdere kan uploade eller redigere Excel-filer, der senere behandles af systemet, kan sårbarheden stadig udnyttes indefra eller via en kompromitteret arbejdsstation.
Kan vi vente til efter weekenden med at opdatere?
Hvis systemet er tilgængeligt for eksterne brugere uden login, bør I ikke vente. Er brugen udelukkende intern og velkontrolleret, kan I planlægge opdateringen inden for en uge, men bør holde ekstra øje med logs i mellemtiden.
Skal vi anmelde hændelsen til Datatilsynet?
Kun hvis I finder konkrete tegn på, at sårbarheden er blevet udnyttet, og at persondata er blevet kompromitteret. En opdatering forud for udnyttelse udløser ikke en anmeldelsespligt.
Påvirker sårbarheden andre Excel-biblioteker end exceljs-hardened?
Nej, fejlen ligger specifikt i deepMerge-funktionen i exceljs-hardened. Andre biblioteker med lignende funktionalitet bør dog gennemgås for samme type fejl, hvis de bruger tilsvarende sammenfletningslogik.
Hvad koster det at ignorere sårbarheden?
Da angrebet ikke kræver login eller brugerhandling, kan en udnyttelse ske automatiseret og ubemærket. Konsekvensen kan være tab af fortrolige data og ændret systemadfærd, hvilket typisk er langt dyrere at udbedre end en planlagt opdatering.
CVSS-detaljer
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:L
CWE-svaghedstyper
Original NVD-beskrivelse (engelsk)
exceljs-hardened before 5.0.0 contains a prototype pollution vulnerability in the deepMerge helper that fails to reject __proto__, constructor, or prototype keys when merging note objects. Attackers can assign parsed JSON with a malicious __proto__ property to cell notes, modifying Object.prototype and affecting all plain objects created in the process.
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.