Åbner i en ny fane
CVE-2026-92948
Kritisk

CVE-2026-92948: Kritisk sandkasseflugt i vm2 3.9.6–3.11.6

Kritisk fejl i vm2 3.9.6–3.11.6 tillader sandkasseflugt på Node.js 24+. Opdatér til 3.11.7 nu.

CVSS Score
9.9
Offentliggjort
17/09/2026
Patch-status
Opdatering findes
Exploit
Angrebskode er offentlig
Tidsfrist
Opdatér inden for 24 timer

Hvad er det?

vm2 er et JavaScript-bibliotek, der bruges til at køre upålidelig kode i en isoleret sandkasse, så den ikke kan påvirke resten af systemet. CVE-2026-92948 er en fejl i vm2-versionerne 3.9.6 til og med 3.11.6, der gør det muligt at bryde ud af denne sandkasse. Fejlen opstår, fordi vm2 ikke håndterer Node.js 24’s nye måde at eksponere det indbyggede modul node:test på korrekt. En angriber kan udnytte dette til at køre vilkårlig kode direkte på værtssystemet uden for sandkassen. Fejlen er rettet i vm2 3.11.7.

Hvem rammer det?

Fejlen rammer virksomheder og udviklere, der bruger npm-pakken vm2 i version 3.9.6 til og med 3.11.6 på et system, der kører Node.js 24 eller nyere. Den er kun udnyttelig, hvis applikationen eksplicit tillader det indbyggede modul node:test i sin konfiguration, for eksempel via require: { builtin: ['node:test'] }. Typiske målgrupper er SaaS-platforme, udviklingsmiljøer og interne systemer, der kører bruger- eller kundeleveret JavaScript i en sandkasse.

Hvad kan ske?

En angriber med en brugerkonto i et system, der kører den sårbare vm2-konfiguration, kan bryde ud af sandkassen og køre vilkårlig kode direkte på den server, der hoster applikationen. Det kan i praksis betyde fuld adgang til serveren, herunder adgang til databaser, interne systemer og følsomme data. En angriber kan potentielt hente kundedata, slette filer eller bevæge sig videre ind i jeres netværk.

Hvor alvorligt er det?

CVSS-scoren er 9.9, hvilket er kritisk. Angrebet kræver kun et lavt rettighedsniveau, det vil sige at angriberen blot skal have en almindelig brugerkonto i applikationen. Der kræves ingen handling fra andre brugere. Angrebet kan udføres over netværket uden fysisk adgang. Konsekvenserne for fortrolighed, integritet og tilgængelighed er alle vurderet til høj. Fejlen er endnu ikke bekræftet aktivt udnyttet, men den tekniske beskrivelse er offentlig, og kompleksiteten er lav, hvilket gør den let at misbruge.

Hvad gør jeg nu?

Følg disse trin i prioriteret rækkefølge for at lukke hullet:

  1. Opdatér vm2 til version 3.11.7 ved at køre npm install vm2@3.11.7 i jeres projekt og geninstaller applikationen i produktion.
  2. Tjek om jeres konfiguration eksplicit tillader node:test som tilladt modul. Er det tilfældet, er I direkte sårbare og skal opdatere med det samme.
  3. Søg jeres kodebase og afhængigheder igennem for indirekte brug af vm2, da biblioteket også kan være trukket ind via andre pakker. Brug npm ls vm2 til at kortlægge dette.
  4. Gennemgå logfiler for usædvanlige procesopkald eller mistænkelig aktivitet i perioden fra Node.js 24-opgraderingen og frem til i dag.
  5. Hvis I ikke kan opdatere med det samme, så deaktivér node:test som tilladt modul i vm2-konfigurationen som midlertidig afhjælpning.
  6. Kontakt en ekstern sikkerhedskonsulent, hvis I har mistanke om, at fejlen allerede er udnyttet, eller hvis I ikke kan vurdere omfanget af eksponeringen selv.
Tidsfrist

Opdatér inden for 24 timer

Sådan ser Auroa det

Vi anbefaler, at I opdaterer vm2 til version 3.11.7 hurtigst muligt, da den tekniske beskrivelse af angrebet er offentlig og kompleksiteten er lav. Er opdateringen ikke mulig inden for de næste 24 timer, bør I som minimum fjerne node:test fra listen over tilladte moduler som midlertidig løsning. Det er ikke forsvarligt at vente til weekenden, hvis jeres system kører Node.js 24 og har den sårbare konfiguration aktiv. Kontakt os, hvis I har brug for hjælp til at vurdere eksponeringen eller gennemføre opdateringen sikkert.

Tidslinje

17/09/2026
CVE offentliggjort og rettelse frigivet
NVD offentliggjorde CVE-2026-92948 den 17. september 2026. Samtidig blev vm2 version 3.11.7 frigivet med en rettelse af fejlen.

Konkrete eksempler

SaaS-platform der kører kundeleveret kode

En dansk softwarevirksomhed tilbyder en platform, hvor kunder kan uploade og køre egne JavaScript-regler til datahåndtering. Platformen bruger vm2 til at isolere denne kode fra resten af systemet. En kunde med ondsindede hensigter udnytter fejlen til at bryde ud af sandkassen og få adgang til serverens filsystem, herunder miljøvariabler med adgangsnøgler til virksomhedens database. Resultatet kan være et databrud med eksponering af alle kunders data og en anmeldelsespligt over for Datatilsynet.

Ofte stillede spørgsmål

CVSS-detaljer

Attack Vector
NETWORK
Attack Complexity
LOW
Privileges Required
LOW
User Interaction
NONE
Scope
CHANGED
Confidentiality
HIGH
Integrity
HIGH
Availability
HIGH

CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H

CWE-svaghedstyper

CWE-693

Original NVD-beskrivelse (engelsk)

vm2 versions >= 3.9.6 and <= 3.11.6 are affected by a NodeVM builtin allowlist bypass that permits a sandbox escape on Node.js 24 and newer when the embedder explicitly allows the node:test builtin (e.g. require: { builtin: ['node:test'] }). On Node.js 24+, module.builtinModules exposes the scheme-only key node:test, which is not covered by vm2's family-based DANGEROUS_BUILTINS protection, so it is stored in the generic host-passthrough loader. Because requireImpl() in lib/setup-node-sandbox.js strips a single 'node:' prefix before the builtin lookup, sandbox code calling require('node:node:test') resolves to the stored node:test key and receives a readonly proxy to the host module. Calls to node:test.run() are forwarded to the host implementation, which spawns a separate Node process for process-isolated test execution and passes through attacker-controlled execArgv values; supplying –eval= therefore executes arbitrary JavaScript in an unrestricted host Node process outside the NodeVM sandbox. Fixed in vm2 3.11.7.

Referencer & kilder

Eksterne kilder

Sværhedsgrad
Kritisk
CVSS Base Score
9,9
Hurtige fakta
CVE-ID
CVE-2026-92948
Offentliggjort
17/09/2026
Sidst opdateret
17/09/2026
Exploit-status
Angrebskode er offentlig
Patch-status
Opdatering findes

Brug for hjælp med jeres sikkerhed?

Vi hjælper SMV’er med at omsætte trusler som denne til konkrete handlingsplaner.