Vulnerabilitate de tip RCE identificată în decoderul Brotli din Nose.js
Sursă: https://thehackernews.com
Node.js a lansat actualizări de securitate pentru cele trei serii de versiuni suportate, 22.x, 24.x și 26.x, remediind 10 vulnerabilități. Cea mai severă vulnerabilitate este o eroare în codul de decompresie Brotli inclus în Node.js, care, potrivit echipei proiectului, poate permite executarea de cod de la distanță, ceea ce înseamnă că un atacator ar putea rula codul dorit pe sistemul afectat.
Fiecare linie de versiuni suportată are o versiune remediată: 22.23.4 și 24.22.1 pentru liniile cu suport pe termen lung, și 26.12.1 pentru linia curentă. Versiunile Node.js 20.x și anterioare au ajuns la sfârșitul duratei de funcționare și nu vor primi remedierea, așa că ar trebui mutate pe o linie de versiuni suportată.
Vulnerabilitatea Brotli se află în pachetele de cod Node.js, nu în programul propriu al utilizatorului. Node.js execută acel cod ori de câte ori decomprimă date Brotli, fie direct prin modulul node:zlib, fie automat atunci când codul apelează funcția fetch() pentru un răspuns trimis cu compresie Brotli.
O aplicație este expusă atunci când decomprimă date Brotli controlate de un atacator, cum ar fi conținutul unei cereri sau un răspuns preluat de la un alt server.
Vulnerabilitatea constă într-o eroare de tip out-of-bounds write în decodorul Brotli, declanșată de date de intrare comprimate cu format incorect. Remedierea constă într-un patch provenit de la proiectul Brotli, pe care Node.js l-a integrat, iar acesta face ca decodorul să detecteze datele de intrare nevalide și să se oprească mai devreme, în loc să scrie dincolo de limitele bufferului.
Brotli este biblioteca de comprimare a Google, iar Node.js include propria sa versiune. Aceeași remediere a fost inclusă în versiunile Brotli 1.2.1, 1.1.1 și 1.0.10, astfel încât și alte programe care integrează Brotli ar putea avea nevoie de aceeași actualizare.
Trei dintre celelalte remedieri sunt, de asemenea, evaluate cu un grad de severitate high. Două dintre ele se referă la verificările certificatelor TLS, pe care un atacator le-ar putea ocoli scriind adresa IP a unui server într-un format neobișnuit, astfel încât un certificat să corespundă unui host care nu ar trebui să corespundă (CVE-2026-106069 și CVE-2026-105483). A treia remediere împiedică funcția dns.resolve să scurteze numele unui host la un octel nul încorporat (CVE-2026-105482).
Node.js clasifică CVE-2026-105483 ca având un grad de severitate high, deși commit-ul care a remediat-o clasifică vulnerabilitatea ca având un grad de severitate scăzut și greu de exploatat.
Restul vulnerabilităților au un grad de severitate mediu și scăzut. O vulnerabilitate cu severitate medie face ca funcțiile crypto.randomUUID() și crypto.randomInt() să returneze aceleași valori în fiecare proces atunci când o aplicație este compilată ca o aplicație de tip startup snapshot sau ca o aplicație cu un singur executabil (CVE-2026-106074), ceea ce subminează orice funcționalitate care se bazează pe caracterul imprevizibil al acestor valori.
Pe lângă cele 10 vulnerabilități, actualizările îmbunătățesc mai multe componente incluse în pachet. Versiunea undici, clientul HTTP care stă la baza funcției `fetch()`, trece la o versiune care remediază trei avertismente de securitate moderate: unul legat de verificarea integrității subresurselor și două vulnerabilități de epuizare a memoriei, dintre care una se regăsește în clientul WebSocket integrat în Node.js.
Node.js a actualizat, de asemenea, c-ares-ul inclus în toate versiunile, OpenSSL în versiunile 22.x și 24.x, precum și SQLite în versiunea 22.x, pentru a include remedieri pentru vulnerabilitățile dezvăluite public.
Soluția constă în actualizare. Avizul nu oferă nicio soluție temporară pentru vulnerabilitatea Brotli, astfel încât o aplicație care nu poate fi actualizată imediat nu dispune de nicio alternativă în cadrul Node.js.
Sursă: https://thehackernews.com/2026/10/nodejs-brotli-decoder-bug-could-allow.html
