Alertă de securitate · Ridicată
Node.js: defectele HTTP/2 și HTTPS permit clienților să blocheze serverele și să citească datele altor utilizatori
· 5 minute de citit · Centoculus Security Team
Cunoscută din
Afectate: Node.js 22.x înainte de 22.23.5, 24.x înainte de 24.22.3, 26.x înainte de 26.13.1. Liniile scoase din uz, precum 20.x și 25.x, sunt de asemenea afectate și nu primesc remediere.
Ce s-a întâmplat
Pe 11 noiembrie 2026, proiectul Node.js a publicat versiuni de securitate pentru cele trei linii de lansare suportate. Versiunile remediate sunt 22.23.5, 24.22.3 și 26.13.1. Ele repară 16 vulnerabilități din Node.js însuși, dintre care șapte sunt considerate cu gravitate ridicată. Lansările actualizează și dependențele incluse llhttp (22.x, 24.x, 26.x), undici (24.x, 26.x) și sqlite (22.x, 24.x).
Cele mai importante probleme se află în codul de server pe care Node.js îl oferă pentru HTTP/2, HTTPS și TLS:
- Blocarea serverului HTTP/2 (24.x și 26.x): orice client neautentificat poate opri procesul Node.js. Serverul are nevoie doar de configurarea implicită HTTP/2 și de un handler care răspunde înainte ca tot corpul cererii să fi sosit. Proiectul spune că acest comportament este tipic. Atacul funcționează atât prin TLS, cât și prin conexiuni necriptate.
- Divulgare de memorie HTTP/2 (toate cele trei linii): un server poate trimite unui client fragmente din memoria sa, inclusiv răspunsuri destinate altor conexiuni. Începând cu 24.22.0 și 26.9.0, un client poate declanșa asta singur. În versiunile 22.x și 24.x și 26.x mai vechi, poate apărea când serverul închide un stream în mijlocul unui răspuns, de exemplu după un timeout de inactivitate.
- Divulgare de memorie HTTPS (toate cele trei linii): un client neautentificat poate citi memorie din alte conexiuni, „inclusiv chei private TLS și cereri ale altor utilizatori”, potrivit proiectului. Pentru aceasta este nevoie de un handler care apelează
res.flushHeaders()înainte ca corpul cererii să se fi încheiat și apoi apeleazăres.end()cu date. Pentru a citi memoria scursă, atacatorul are nevoie și de o rută care trimite înapoi sau stochează corpul unei cereri. - Epuizarea resurselor HTTP/2 (toate cele trei linii): un client poate face ca orice server HTTP/2 implicit să păstreze permanent memorie și descriptori de fișiere.
- Servirea fișierelor prin HTTP/2 (24.x și 26.x): un client poate corupe memoria serverului când acesta servește fișiere cu
stream.respondWithFile()saustream.respondWithFD(). Pe toate cele trei linii, anularea unor astfel de descărcări poate bloca și serverul (gravitate medie). - Blocarea serverului TLS (24.x și 26.x): un client poate bloca un server TLS care folosește hook-urile
SNICallback,OCSPRequest,newSessionsauresumeSession, sauserver.addContext(). - Ocolirea certificatului de client TLS (toate cele trei linii): unele servere aplică reguli mai stricte pentru certificatele de client la anumite nume de host. Pe aceste servere, un client aprobat pentru alt host poate trece la unul mai strict în timpul renegocierii TLS 1.2, fără să respecte regulile acestuia.
Avizul nu raportează atacuri care să fi exploatat aceste defecte.
Cine este afectat
- Serverele care rulează Node.js 22.x înainte de 22.23.5, 24.x înainte de 24.22.3 sau 26.x înainte de 26.13.1.
- Liniile scoase din uz, inclusiv 20.x și 25.x, nu primesc remediere în această versiune. Proiectul precizează că aceste versiuni sunt mereu afectate.
- Problemele grave de pe partea de server contează doar acolo unde un proces Node.js acceptă el însuși conexiuni HTTP/2, HTTPS sau TLS. Exemple sunt modulele integrate
node:http2,node:httpssaunode:tls, sau framework-urile care le folosesc pentru a termina TLS sau HTTP/2. - Serverele HTTP simple construite cu
node:httpnu sunt afectate de divulgarea de memorie HTTPS. - Blocarea HTTP/2 afectează doar liniile 24.x și 26.x, nu 22.x.
Expunerea ta este mult mai mică dacă un reverse proxy, precum nginx, Apache, HAProxy sau un load balancer, termină TLS și HTTP/2, iar Node.js primește de la el doar HTTP/1.1 simplu. Totuși, ar trebui să actualizezi, deoarece lansarea conține și alte remedieri și actualizări de dependențe.
Ce ai de făcut acum
- Găsește toate instalările Node.js. Nu uita de pachetele de sistem, de managerii de versiuni (nvm, n, Volta), de imaginile Docker, de runner-ele CI și de panourile de hosting care includ propriul Node.js.
- Actualizează la versiunea remediată a liniei tale: 22.23.5, 24.22.3 sau 26.13.1. Dacă folosești pachete de la distribuție sau de la furnizor (de exemplu NodeSource sau distribuția ta Linux), instalează actualizarea imediat ce sursa de pachete oferă aceste versiuni.
- Renunță la versiunile scoase din uz. Dacă mai rulezi 20.x, 25.x sau versiuni mai vechi, treci la o linie suportată. Avizul nu oferă o soluție alternativă pentru serverele care nu pot fi actualizate.
- Reconstruiește imaginile de container cu o imagine de bază Node.js actualizată și redeployează-le. Actualizarea doar a sistemului gazdă nu schimbă Node.js din interiorul containerelor.
- Repornește toate procesele Node.js (unități systemd, PM2, containere Docker etc.) ca să fie încărcat noul runtime. Apoi verifică dacă aplicațiile tale răspund normal.
- Ia în calcul rotirea secretelor dacă ai fost expus. Avizul nu spune dacă serverele care au îndeplinit condițiile pentru divulgarea de memorie HTTPS ar trebui să își înlocuiască cheile TLS sau alte secrete. Dacă un server HTTPS Node.js de-al tău a îndeplinit aceste condiții și era accesibil din internet, ia în considerare reînnoirea certificatului TLS și a cheii.
Cum verifici dacă ești afectat
- Rulează
node -vpe fiecare server și în fiecare container (docker exec <container> node -v). Versiunile sub 22.23.5, 24.22.3 sau 26.13.1 din linia lor, sau orice linie scoasă din uz, precum 20.x sau 25.x, sunt afectate. - Cu PM2,
pm2 listșipm2 show <app>arată ce binar și ce versiune de Node.js folosește fiecare aplicație. - Verifică dacă aplicațiile tale termină singure TLS sau HTTP/2 în Node.js: caută în cod
http2.createSecureServer,http2.createServer,https.createServer,tls.createServer,respondWithFile,respondWithFD,SNICallbackșiaddContext. - Verifică managerul de procese și jurnalele de sistem pentru reporniri sau blocări neașteptate ale Node.js. Opririle repetate ale unui server HTTP/2 pot indica încercări de declanșare a blocării.
Surse
Articole similare
Alerte ·
Citrix NetScaler ADC și Gateway: defecte critice de memorie permit refuzul serviciului (CVE-2026-120868)
Citrix a remediat nouă defecte critice de memorie din NetScaler ADC și NetScaler Gateway, care pot duce la refuzul serviciului. CVE-2026-120868 afectează fiecare instalare. Actualizează la 14.1-73.57, 13.1-64.39 sau la versiunile FIPS corespunzătoare.
Alerte ·
PostgreSQL CVE-2026-6460: utilizatorii care pot crea obiecte pot rula cod pe server
PostgreSQL 18.7, 17.12, 16.16, 15.20 și 14.25 remediază CVE-2026-6460 și alte 51 de defecte. Un utilizator al bazei de date care poate crea obiecte poate rula cod ca utilizatorul sistemului de operare sub care rulează PostgreSQL. Actualizează serverul și extensiile C împreună.
Alerte ·
Hosting-ul Mittwald atacat prin un server MCP: serviciile de administrare sunt offline, clienții ar trebui să verifice
Furnizorul de web hosting Mittwald este în mod de urgență după un atac printr-un server MCP. Serviciile de administrare pentru clienți sunt oprite. Clienții ar trebui să se bazeze doar pe anunțurile oficiale și să se pregătească să îți verifici conturile și site-urile.