După PHP2Shell, o a doua vulnerabilitate critică într-o componentă folosită peste tot pe internet le dă de lucru administratorilor și programatorilor. De data aceasta, problema e în Brotli, biblioteca de compresie dezvoltată de Google, pe care o folosesc Node.js, .NET, bibliotecile Python pentru cereri web, curl și multe alte programe. Vulnerabilitatea, CVE-2026-111497, poate permite rularea de cod de la distanță doar prin trimiterea unor date comprimate special.

Cercetătorii au dat problemei mai multe nume: „Node2Shell”, „Broccoli2Shell” și „HTTP2Shell”. Ultimul arată cel mai bine cât de larg e impactul, pentru că problema nu se limitează la Node.js: lovește orice aplicație care decomprimă date Brotli primite prin HTTP.

Ce este Brotli și unde apare

Brotli este un algoritm de compresie lansat de Google în 2015 și folosit în principal pe web: serverele trimit paginile comprimate (antetul Content-Encoding: br), iar programul care le primește le decomprimă. Multe aplicații includ în interior propria copie a bibliotecii, iar acest detaliu contează mult la actualizare.

Ce e greșit în cod

Decodorul trata o anumită eroare de format din fluxul comprimat (o „schimbare de bloc” invalidă) ca pe o cerere de date suplimentare. Continua astfel să adauge octeți într-o zonă de memorie internă de numai opt octeți și scria dincolo de limita ei. Rezultatul poate fi oprirea procesului, scurgerea de date din memorie sau, în cel mai grav caz, rularea codului atacatorului.

DetaliuValoare
IdentificatorCVE-2026-111497
GravitateCVSS 4.0: 9,2 din 10 (Google); CVSS 3.1: 9,8 (GitHub); Node.js o clasifică „ridicată”
Versiuni Brotli afectate1.0.3–1.0.9, 1.1.0 și 1.2.0
Versiuni Brotli reparate1.0.10, 1.1.1 și 1.2.1
Descoperită deOpenAI, în februarie, potrivit Aikido
Corecturi publicate21 octombrie (Node.js și Google), 23 octombrie (pachetele Python), 25 octombrie (.NET)
Atacuri confirmatedeocamdată nu; există exploit-uri demonstrative publice pe GitHub

Un detaliu arată cât de greu ajung corecturile la utilizatori: potrivit Aikido, codul sursă Brotli a fost reparat încă din februarie, dar nicio versiune nouă nu a fost lansată până în octombrie.

Cum ar putea ataca cineva

  • Prin cereri către server. Dacă un server acceptă cereri comprimate cu Brotli și le decomprimă, atacatorul îi trimite direct datele periculoase. Acest drum poate fi blocat la firewall sau la proxy.
  • Prin răspunsuri de la un server rău intenționat. Dacă aplicația ta descarcă date de pe un site controlat de atacator, iar biblioteca decomprimă automat răspunsul (de exemplu, fetch() în Node.js sau requests în Python, când e instalat pachetul Brotli), atacul vine din răspuns. Acest drum nu poate fi blocat filtrând cererile primite.
Ilustrație a vulnerabilității din decodorul Brotli: memorie corupată prin scriere în afara limitelor
Problema e în decodorul Brotli folosit de mai multe produse; un exploit funcțional a fost demonstrat pe o versiune de Node.js.

Ce e afectat și ce versiuni instalezi

ProdusVersiuni reparateObservații
Node.js22.23.4, 24.22.1, 26.12.1Node.js 20 și mai vechi nu mai primesc corectură: treci pe o versiune suportată
.NET8.0.33, 9.0.22, 10.0.14, 11 RC3afectat doar dacă aplicația decomprimă Brotli (nu e activat implicit); .NET 7 nu primește corectură; .NET Framework nu e afectat
Python: Brotli / brotlicffi1.2.1 / 1.2.1.0folosite automat de urllib3, requests, httpx, aiohttp și Scrapy, dacă sunt instalate
Bun1.4.4executabilele compilate trebuie refăcute
Java: brotli4j1.24.0include Brotli 1.2.1
curl / libcurlcu Brotli 1.2.1 sau o versiune reparatăcopiile incluse în aplicații necesită recompilare
Envoy / IstioEnvoy 1.37.8, 1.38.6, 1.39.3, 1.40.0; Istio 1.29.9, 1.30.6, 1.31.2doar dacă e configurat filtrul de decompresie Brotli

Potrivit Aikido, Debian și Alpine au deja pachete reparate, iar Amazon Linux 2023 a primit corectura adaptată. La Ubuntu, SUSE și Red Hat, pachetele reparate nu apăruseră încă la data analizei. Modulul standard mod_brotli din Apache doar comprimă, nu decomprimă, deci nu e afectat. Avizele publicate până acum nu menționează browserele.

Ce trebuie să faci

  1. Verifică versiunile:
    • Node.js: node -v
    • Python: pip show Brotli brotlicffi în fiecare mediu și container
    • .NET: dotnet --list-runtimes
    • curl: curl -V (caută „brotli” în linia Features)
  2. Actualizează la versiunile din tabel, de exemplu pip install -U "Brotli>=1.2.1", apoi regenerează fișierele de dependențe (lockfiles).
  3. Repornește procesele după actualizare: un serviciu care rulează păstrează în memorie versiunea veche.
  4. Reconstruiește imaginile Docker și aplicațiile autonome (.NET self-contained, executabile Bun). Actualizarea bibliotecii Brotli din sistem nu repară Node.js și nici aplicațiile care vin cu propria copie.
  5. Dacă nu poți actualiza imediat: dezactivează decompresia Brotli în aplicațiile Python și .NET și blochează la proxy sau firewall cererile primite cu Content-Encoding: br. Ține minte că asta nu acoperă descărcările de pe servere străine.

Dacă nu administrezi servere și nu scrii cod, nu ai nimic special de făcut, în afară de obișnuitele actualizări ale programelor de pe calculator.

Actualizare la PHP2Shell: atacuri confirmate

Între timp, situația PHP2Shell s-a agravat. Pe 26 octombrie, agenția americană CISA a adăugat cele două vulnerabilități (CVE-2026-109618 și CVE-2026-109619) în catalogul celor exploatate efectiv și le-a cerut instituțiilor federale să le repare până pe 29 octombrie. Un cercetător de la Perplexity a raportat prima rulare de cod reușită pe un server-capcană. Detaliile sunt în articolul nostru despre PHP2Shell, actualizat.

Surse: BleepingComputer (detaliile tehnice, versiunile reparate, corecturile .NET de urgență, măsurile temporare), Rapid7 (scorul CVSS, versiunile Node.js și Brotli, lipsa atacurilor confirmate la 26 octombrie), Aikido (pachetele Python, Java, curl, Envoy, Istio, distribuțiile Linux, descoperirea de către OpenAI), catalogul CISA KEV (verificat pe 27 octombrie).

🔒 Securitate
← Toate articolele
💬 Comentarii

Fii primul care comentează acest articol!

✍️ Lasă un comentariu
9 + 1 = ?