CVE-2026-92944: evadare critică din sandbox în vm2 pentru Node.js 26
Vulnerabilitate critică (CVSS 9.3) în vm2 permite evadarea din sandbox în Node.js 26. Ce este, pe cine afectează și cum te poți proteja.
CVE-2026-92944: evadare critică din sandbox în vm2 pentru Node.js 26
Pe scurt
A fost publicată o vulnerabilitate critică (CVE-2026-92944, CVSS 9.3) în biblioteca vm2, folosită pentru a executa cod în medii izolate ("sandbox") în cadrul aplicațiilor Node.js [1]. Defectul permite ca un cod nesigur să evadeze din sandbox și să preia controlul procesului gazdă atunci când este rulat pe Node.js 26 [1][2]. Dacă firma ta dezvoltă sau utilizează aplicații care execută cod de la terți sau de la utilizatori prin intermediul vm2, primul pas de făcut chiar azi este să identifici unde este folosită această bibliotecă și să verifici versiunea instalată.
Ce este și de ce contează
vm2 este un instrument foarte utilizat de dezvoltatori pentru a executa cod JavaScript provenit din surse nesigure într-un mediu presupus izolat de restul aplicației: plugin-uri ale utilizatorilor, scripturi personalizate, corectori de exerciții de programare, motoare de reguli etc. Ideea este că, orice s-ar întâmpla în interiorul acelui cod, acesta nu poate „ieși” și nu poate afecta sistemul real.
Conform descrierii oficiale a defectului, în versiunile vm2 cuprinse între 3.10.2 și 3.11.6, un mecanism intern al motorului V8 (protectorul numit PromiseThenLookupChain) rămâne neactualizat în Node.js 26, iar acest lucru permite unei funcții asincrone construite intenționat de un atacator să eludeze protecțiile sandbox-ului prin metoda Promise.prototype.finally() [1]. Rezultatul este că acel cod „izolat” poate ajunge la funcții interne ale sistemului și poate executa cod arbitrar cu privilegiile procesului principal [1][2].
Informațiile proprii ale radarului OCIRIA, care monitorizează vulnerabilități relevante pentru infrastructurile de dezvoltare și producție, clasifică acest caz în categoria execuției de cod la distanță și subliniază că importanța sa constă tocmai în faptul că rupe premisa izolării: dacă sandbox-ul eșuează, întreaga aplicație — și, potențial, alte date și servicii din același proces — rămâne expusă [2].
În ceea ce privește existența unor dovezi de exploatare activă în lumea reală, la data publicării acestui articol CVE-ul nu figurează în catalogul de vulnerabilități cunoscute exploatate (KEV) întreținut de agenția americană CISA [3]. Acest lucru nu înseamnă că este inofensivă — scorul său de 9.3 o plasează printre cele mai grave [1] —, ci doar că nu există dovezi documentate de campanii de atac active în acest moment.
Pe cine afectează
Această vulnerabilitate afectează organizațiile care:
- Dezvoltă sau întrețin aplicații Node.js care utilizează biblioteca vm2 pentru a izola execuția de cod provenit de la terți sau de la utilizatori.
- Au actualizat sau implementează medii bazate pe Node.js 26, deoarece defectul se manifestă în mod specific în această versiune de runtime, din cauza unei modificări în motorul V8 [1].
- Operează platforme de tip „cod ca serviciu”: editoare online, sandbox-uri de testare, motoare de automatizare, plugin-uri sau extensii executate pe server, corectori automați etc.
Adevărul structurat gestionat de OCIRIA nu identifică furnizori concreți afectați dincolo de pachetul vm2 în sine, motiv pentru care recomandăm să nu se presupună că un anumit furnizor este sau nu expus fără a verifica direct acest lucru.
Cum să afli dacă ești vulnerabil
Nu există o modalitate generică de „a vedea dintr-o privire”: depinde de ce dependențe folosește codul tău și în ce mediu rulează. Recomandăm:
1. Verificarea inventarului de dependențe al aplicațiilor voastre Node.js (package.json / package-lock.json) pentru a căuta vm2 și a verifica versiunea exactă instalată.
2. Confirmarea versiunii de Node.js pe care rulează fiecare serviciu în producție, acordând o atenție specială celor care rulează deja pe Node.js 26.
3. Verificarea suprafeței expuse a serviciilor și mediilor voastre de dezvoltare, în special a celor care acceptă sau execută cod extern, pentru a detecta puncte de expunere care nu sunt controlate sau inventariate.
Cum te poți proteja
- Actualizează vm2 la o versiune corectată de îndată ce aceasta este publicată de mentenatorul proiectului; între timp, ia în considerare limitarea sau dezactivarea temporară a funcționalităților care execută cod nesigur dacă riscul este ridicat [2].
- Revizuiește utilizarea sandbox-urilor în general: având în vedere că această familie de defecte (evadare din sandbox) tinde să se repete, evaluează dacă arhitectura voastră depinde excesiv de un singur mecanism de izolare la nivel de proces sau dacă este indicat să îl consolidați cu izolare suplimentară (containere, mașini virtuale ușoare, permisiuni restricționate la nivel de sistem de operare).
- Auditează codul executat în sandbox provenit din surse nesigure: utilizatori externi, plugin-uri ale terților sau integrări insuficient controlate.
- Monitorizează alertele de securitate ale bibliotecilor critice care fac parte din lanțul vostru de aprovizionare software, nu doar ale framework-urilor principale.
- Prioritizează în funcție de expunerea reală: dacă serviciile voastre nu execută cod de la terți în sandbox sau nu folosiți Node.js 26, riscul imediat este mai mic, dar este indicat să documentați acest lucru pentru revizuiri viitoare.
Întrebări frecvente
Cât de gravă este această vulnerabilitate?
Conform NVD, are un scor CVSS de 9.3, calificat drept critic [1].
Este exploatată în mod activ această vulnerabilitate?
La data publicării acestui articol, nu figurează în catalogul de vulnerabilități cunoscute exploatate (KEV) al CISA, prin urmare nu există dovezi documentate de exploatare activă [3].
Afectează orice aplicație Node.js?
Nu. Afectează în mod specific aplicațiile care utilizează biblioteca vm2 (versiunile 3.10.2 până la 3.11.6) pentru a executa cod în sandbox, iar evadarea descrisă are loc în contextul Node.js 26 [1].
Ce trebuie să fac dacă nu știu dacă folosesc vm2?
Verifică inventarul de dependențe al proiectelor tale Node.js și, dacă ai îndoieli cu privire la expunerea reală a sistemelor tale, este indicat să faci o revizuire mai amplă a suprafeței tale expuse.
Surse
- [1] https://nvd.nist.gov/vuln/detail/CVE-2026-92944
- [2] https://github.com/advisories/GHSA-27g9-p43v-cw3v
- [3] https://raw.githubusercontent.com/cisagov/kev-data/develop/known_exploited_vulnerabilities.json