Brotli CVE-2026-111497 în KEV: patch-uri .NET, PHP și Node.js
Breșa Brotli CVE-2026-111497 (Node2Shell): patch-uri în afara ciclului pentru .NET, Node.js, Python și PHP pe Windows, PoC publice și intrare în KEV.

Duminică, 25 octombrie 2026, Microsoft a publicat actualizări în afara ciclului pentru .NET pentru CVE-2026-111497, o scriere în afara limitelor în decodorul Brotli, biblioteca de compresie dezvoltată de Google. Vulnerabilitatea are mai multe nume: Node2Shell (dat de Imperva), Broccoli2Shell, HTTP2Shell și Brotli2Shell. Pe 27 octombrie, CISA a adăugat-o în catalogul KEV al vulnerabilităților exploatate, cu termen 10 noiembrie pentru agențiile federale americane.
Articolul nostru din 21 octombrie despre versiunile de securitate Node.js cita această CVE printre cele patru de gravitate ridicată, fără detalii. Povestea a mers în paralel cu PHP2Shell, despre care am scris pe 20 și 23 octombrie: potrivit titlului unui articol The Hacker News, și proiectul PHP a publicat pentru Windows o a doua actualizare de securitate în cinci zile, pentru a corecta vulnerabilitatea Brotli. Textul acelui articol nu a fost disponibil: informația despre PHP provine doar din această sursă. În continuare, noutățile: cauza, cine trebuie să actualizeze și situația exploit-urilor.
Vulnerabilitatea
Potrivit descrierii publicate de NVD, defectul se află în decodorul (c/dec/decode.c) Brotli de la 1.0.3 până la 1.2.0, pe toate platformele. Un atacator de la distanță, neautentificat, cu un flux comprimat construit special, poate corupe memoria decodorului, poate citi date sensibile, poate bloca procesul sau, în unele cazuri, poate executa cod.
Mecanismul, descris în avizul Node.js și în PoC-ul publicat pe GitHub: la o schimbare de bloc invalidă, funcția DecodeBlockTypeAndLength() returnează o valoare ambiguă, pe care calea rapidă a decodorului o interpretează ca „mai sunt necesare date” în loc de eroare de format. Decodorul continuă astfel să adauge octeți într-un buffer intern de opt octeți și scrie dincolo de limitele lui. Slăbiciunile sunt CWE-252 (valoare returnată neverificată) și CWE-787 (scriere în afara limitelor).
Numele HTTP2Shell înșală: vulnerabilitatea nu privește doar HTTP/2. Este expusă orice aplicație care decomprimă date Brotli controlate de un atacator, în două direcții: o cerere comprimată trimisă unui server sau un răspuns comprimat servit unui client care descarcă un URL.
Sursele diferă în privința gravității: CVSS 4.0 9.2 (critică) potrivit Google, care a atribuit CVE-ul; CVSS 3.1 8.1 în avizul Microsoft, cu evaluarea „Exploitation More Likely”; gravitate „ridicată” pentru Node.js.
Corecția se afla în codul google/brotli din 27 februarie 2026, fără versiune nouă și fără aviz, iar potrivit Help Net Security a rămas lizibilă public timp de opt luni. Versiunile corectate au apărut abia pe 21 octombrie. Descoperirea este atribuită lui Khai Tran și Sylvie Mayer, de la OpenAI Codex Security.
Cine trebuie să actualizeze
| Componentă | Versiuni corectate |
|---|---|
| Google Brotli | 1.0.10, 1.1.1, 1.2.1 |
| Node.js | 22.23.4, 24.22.1, 26.12.1 |
| .NET (runtime) | 8.0.33, 9.0.22, 10.0.14; .NET 11 RC3 |
Python Brotli |
1.2.1 |
Python brotlicffi |
1.2.1.0 |
- Node.js: liniile fără suport 20.x, 23.x și 25.x sunt afectate, dar nu vor primi corecții.
- .NET: potrivit Microsoft, decompresia Brotli nu este activă implicit. Sunt afectate aplicațiile care folosesc decompresia cererilor din ASP.NET Core, decompresia automată a răspunsurilor din
HttpClientsau API-urile Brotli dinSystem.IO.Compression. Aplicațiile self-contained sau Native AOT trebuie recompilate: actualizarea runtime-ului partajat nu înlocuiește decodorul inclus în executabil. Potrivit rezumatului Infosecurity Magazine, actualizările corectează și o altă vulnerabilitate .NET și defecte nerezolvate complet într-o versiune anterioară. - Python: clienții HTTP
urllib3[brotli],requests,httpxșiaiohttp[speedups]sunt expuși dacă folosesc un decodor vulnerabil. - Alte produse: potrivit The Register, au publicat corecții și Bun, Envoy și Istio; Tenable mai menționează FFmpeg, Apache Arrow și ClickHouse printre produsele potențial afectate. Distribuțiile Linux publică pachete corectate.
Exploit-uri și exploatare
Pe GitHub există PoC-uri publice. Cel descris de CSO Online vizează Node.js 24.22.0 Linux x86-64, depinde de binar și de dispunerea memoriei și uneori necesită mai multe încercări; împotriva versiunii 24.22.1 eșuează. Imperva a obținut execuție de cod pe imaginea oficială Node.js 24.22.0 pentru Linux arm64, după mai multe încercări. JFrog a arătat o cale care nu trece prin HTTP: FFmpeg ajunge la Brotli prin libjxl, care decomprimă metadatele din cutiile brob ale imaginilor JPEG XL; pe Apache Arrow a obținut o blocare a serviciului.
Sursele nu sunt de acord asupra exploatării reale. BleepingComputer, CSO Online și CyberScoop nu raportează atacuri, iar avizul Microsoft nu menționează niciunul. Potrivit Help Net Security, în schimb, pe 26 octombrie ELLIO a înregistrat încercări reale de atac cu exploit-ul public, venite de la 94.154.43.7, o adresă văzută deja cu exploit-uri PHP2Shell și cu scanări GlobalProtect, FortiOS SSL VPN și ale API-urilor Kubernetes. A doua zi, CISA a inclus CVE-ul în KEV, fără să indice folosirea lui în campanii ransomware.
MITRE ATT&CK (clasificarea noastră): T1190 pentru serviciile expuse care decomprimă cereri, T1203 pentru clienții care primesc răspunsuri malițioase.
Impactul pentru companiile europene și italiene
Brotli este integrat în runtime-uri, proxy-uri, gateway-uri API și instrumente multimedia: potrivit Wiz, 91% dintre mediile cloud au resurse vulnerabile, iar 82% au instanțe Node.js expuse public. Rapid7 și watchTowr amintesc însă că prezența decodorului nu înseamnă expunere: contează dacă aplicația decomprimă date controlate de un atacator.
Pentru entitățile NIS2, cazul ține de gestionarea vulnerabilităților și de securitatea lanțului de aprovizionare (articolul 21): documentează ce aplicații includ Brotli, care au fost actualizate și care rămân pe runtime-uri fără suport.
Ce trebuie făcut acum
- Fă inventarul:
node --version,dotnet --list-runtimes,pip show brotli brotlicffi, pachetelelibbrotliale distribuției, imaginile de containere, Envoy și Istio, FFmpeg cu libjxl. - Actualizează la versiunile din tabel, începând cu serviciile care primesc cereri comprimate și cu clienții care descarcă conținut extern.
- Reconstruiește și repornește: imagini noi de containere, recompilarea aplicațiilor .NET self-contained și Native AOT, repornirea proceselor. Actualizarea bibliotecii de sistem nu corectează copiile incluse în Node.js și în aplicații.
- Dacă nu poți actualiza imediat: blochează pe proxy sau pe firewall cererile primite cu
Content-Encoding: brși elimină suportul Brotli din aplicațiile Python. Calea răspunsurilor comprimate primite de clienți rămâne deschisă. - Migrează liniile Node.js 20.x, 23.x și 25.x, care nu vor primi corecții.
- Monitorizează opririle neobișnuite ale proceselor care decomprimă date și traficul de la 94.154.43.7.
Cum ajută ARXDOME
Inventarul ARX Sentry listează software-ul și procesele serverelor cu agent: te ajută să găsești Node.js, .NET și Python. ARX Shield arată vulnerabilitățile deschise pe mașină și pe pachet, cu cele deja exploatate evidențiate; copiile Brotli incluse în aplicații trebuie verificate separat. ARX Expose arată ce servicii publice ale companiei tale expun produse recunoscute.
Ultima actualizare:


