Kritieke vm2 Node.js-fout maakt sandbox-escape en uitvoering van willekeurige code mogelijk

In de populaire vm2 Node.js-bibliotheek is een kritieke sandbox-ontsnappingsbeveiliging onthuld die, indien succesvol misbruikt, aanvallers in staat zou kunnen stellen willekeurige code op het onderliggende besturingssysteem uit te voeren.

De kwetsbaarheid, bijgehouden als CVE-2026-22709heeft een CVSS-score van 9,8 uit 10,0 op het CVSS-scoresysteem.

“In vm2 voor versie 3.10.0 kan Promise.prototype.then Promise.prototype.catch callback-opschoning worden omzeild”, aldus vm2-onderhouder Patrik Simek. “Hierdoor kunnen aanvallers uit de sandbox ontsnappen en willekeurige code uitvoeren.”

vm2 is een Node.js-bibliotheek die wordt gebruikt om niet-vertrouwde code uit te voeren binnen een veilige sandbox-omgeving door JavaScript-objecten te onderscheppen en te proxyen om te voorkomen dat sandbox-code toegang krijgt tot de hostomgeving.

De nieuw ontdekte fout komt voort uit de onjuiste opschoning van Promise-handlers door de bibliotheek, waardoor een ontsnappingsvector ontstaat die resulteert in de uitvoering van willekeurige code buiten de grenzen van de sandbox.

“Het kritische inzicht is dat asynchrone functies in JavaScript ‘globalPromise’-objecten retourneren, en niet’localPromise’-objecten. Omdat ‘globalPromise.prototype.then’ en ‘globalPromise.prototype.catch’ niet op de juiste manier worden opgeschoond (in tegenstelling tot ‘localPromise’),’ aldus Endor Labs-onderzoekers Peyton Kennedy en Cris Staicu.

Hoewel CVE-2026-22709 is aangepakt in vm2 versie 3.10.2, is het de nieuwste in een gestage stroom sandbox-ontsnappingen die de bibliotheek de afgelopen jaren hebben geteisterd. Dit omvat CVE-2022-36067, CVE-2023-29017, CVE-2023-29199, CVE-2023-30547, CVE-2023-32314, CVE-2023-37466 en CVE-2023-37903.

De ontdekking van CVE-2023-37903 in juli 2023 bracht Simek er ook toe aan te kondigen dat het project werd stopgezet. Deze verwijzingen zijn sindsdien echter verwijderd uit het nieuwste README-bestand dat beschikbaar is in de GitHub-repository. De Beveiligingspagina is vanaf oktober 2025 ook bijgewerkt om te vermelden dat vm2 3.x-versies actief worden onderhouden.

De beheerder van vm2 heeft echter ook erkend dat er in de toekomst waarschijnlijk nieuwe bypasses zullen worden ontdekt, en dringt er bij gebruikers op aan ervoor te zorgen dat ze de bibliotheek up-to-date houden en andere robuuste alternatieven te overwegen, zoals geïsoleerde vm, voor sterkere isolatiegaranties.

“In plaats van te vertrouwen op het problematische vm-model, vertrouwt de opvolger van vm2, isolate-vm op de native Isolate-interface van V8, die een solidere basis biedt, maar zelfs dan benadrukken de beheerders van vm2 het belang van isolatie en bevelen ze Docker zelfs aan met een logische scheiding tussen componenten”, aldus Semgrep.

In het licht van de kritiekheid van de fout wordt gebruikers aangeraden om te updaten naar de meest recente versie (3.10.3), die wordt geleverd met oplossingen voor extra sandbox-ontsnappingen.

Thijs Van der Does