NGINX corectează cinci vulnerabilități: trei bug-uri de memorie, ocolirea certificatelor client TLS și o problemă HTTP/3
Pe 14 octombrie 2026, NGINX a lansat versiunile 1.30.6 (stable) și 1.31.7 (mainline), care închid cinci vulnerabilități. Trei sunt bug-uri de siguranță a memoriei care pot bloca un proces worker și, potrivit evaluării F5, ar putea duce la execuție de cod. A patra poate permite, în condiții restrânse, ca o sesiune TLS falsificată să treacă de verificarea certificatului client. A cincea permite unui client HTTP/3 să trimită octeți suplimentari către backend. Una dintre zonele de cod afectate datează din versiuni din 2005.
Vestea bună: niciuna dintre cele cinci nu este declanșată de o instalare implicită. Fiecare depinde de o directivă sau o combinație de directive activată de administrator. Vestea mai puțin bună: unele dintre aceste directive sunt foarte comune — inclusiv una folosită ca exemplu chiar în documentația NGINX.
Ce s-a întâmplat
| CVE | Impact | Ești expus dacă… | Versiuni afectate | Soluție temporară |
|---|---|---|---|---|
| CVE-2026-15176 | Heap overflow → crash worker, posibil RCE | Un location folosește alias, un rewrite schimbă URI-ul și ceva citește $request_filename (return, set, if, add_header, formatul de log) | 0.1.29 – 1.31.6 | Renunță la alias în acel location sau nu mai folosi $request_filename |
| CVE-2026-93479 | Heap overflow → crash worker, posibil RCE | Un map cu regex ale cărui capturi sunt folosite de root sau log_format înaintea variabilei de ieșire | 1.30.0 – 1.30.5, 1.31.2 – 1.31.6 | Folosește capturi denumite, doar în blocul cu potrivirea regex |
| CVE-2026-97205 | Use-after-free → crash / coruperea memoriei, posibil RCE | aio activ și pagini SSI cu include virtual (în anumite configurații) | 0.8.11 – 1.31.6 | Dezactivează aio sau nu mai servi pagini SSI |
| CVE-2026-95101 | Octeți injectați într-o cerere proxy; corpul poate depăși client_max_body_size | HTTP/3 cu proxy_request_buffering on (implicit) | 1.25.0 – 1.31.6 | proxy_request_buffering off |
| CVE-2026-97629 | Sesiune TLS falsificată ce poate ocoli verificarea certificatului client | ssl_session_cache shared:… fără ssl_session_ticket_key (rotire automată a cheilor) | 1.23.2 – 1.31.6 | Încarcă cheile dintr-un fișier, elimină cache-ul partajat sau setează ssl_session_tickets off |
Severitate, conform producătorului: NGINX le încadrează pe toate cinci ca medii. Scorurile CVSS v4.0 ale F5 sunt mai mari — 9.2 (Critic) pentru cele trei bug-uri de memorie, 8.3 pentru problema TLS și 6.9 pentru HTTP/3. La 15 octombrie, niciuna nu figura în catalogul KEV al CISA, iar nici NGINX, nici F5 nu raportau exploatare activă.
Bug-ul cheilor de sesiune TLS, pe scurt
Începând cu 1.23.2 (octombrie 2022), un cache de sesiune partajat fără fișier explicit de chei face ca NGINX să genereze și să rotească singur cheile pentru session tickets. Fiecare worker are trei sloturi de chei, dar rotirea le reîmprospăta doar pe două — al treilea rămânea cu memorie neinițializată. Un ticket care indica acel slot putea fi validat cu el. F5 subliniază că falsificarea este nedeterministă și în afara controlului atacatorului, deci e un risc real, dar greu de atins — nu o ocolire sigură. Amintește de CVE-2025-23419, o problemă similară corectată în februarie 2025.
Bug-ul map este o regresie
CVE-2026-93479 se află în același cod de procesare a șirurilor pe care NGINX l-a corectat în iulie pentru CVE-2026-42533. O modificare din iulie permitea scurgerea datelor într-o zonă rezervată, iar un patch ulterior calcula dimensiunea finală a șirului pe baza acelei lungimi. Concluzie practică: un server actualizat în iulie — sau unul care se bazează doar pe soluția temporară cu capturi denumite — este încă în intervalul afectat. Doar upgrade-ul rezolvă complet problema.
Celelalte trei
- alias + rewrite: în intervalul de după ce un
rewriteschimbă URI-ul și înainte de alegerea următorului location, citirea$request_filenamecu un prefix de location mai lung decât noul URI depășește un buffer. - AIO + SSI: un contor pe 8 biți al operațiilor asincrone, fără verificare, revine la zero după 256, astfel că cererea poate fi eliberată în timp ce operațiile încă o referă. Declanșatorul: subcereri
include virtualîn paralel. - HTTP/3: un singur câmp al parserului ținea atât „octeții rămași de sărit dintr-un frame necunoscut", cât și „octeții DATA de transmis". Un frame necunoscut împărțit în două citiri făcea ca restul să fie trimis ca body — ocolind limita de dimensiune.
De ce contează
NGINX stă în fața unei părți uriașe a web-ului, adesea ca reverse proxy sau terminator TLS pentru aplicații care nu văd niciodată conexiunea brută. Bug-urile de memorie în worker înseamnă, cel puțin, risc de DoS. Problema TLS lovește direct implementările mTLS: dacă certificatele client sunt mecanismul tău de control al accesului, o slăbiciune la reluarea sesiunii devine o problemă de autorizare. Contextul contează: o vulnerabilitate din modulul rewrite corectată în mai 2026 (CVE-2026-42945) a fost raportată ca exploatată la câteva zile după publicare. Aceasta este a opta lansare de securitate NGINX din 2026.
Ce trebuie făcut
- Actualizează la 1.30.6 (stable) sau 1.31.7 (mainline). Doar aceste două ramuri primesc corecturi — 1.28 și versiunile mai vechi rămân vulnerabile. Pentru pachetele din distribuții, verifică dacă furnizorul a portat patch-urile; numărul versiunii nu e suficient.
- Utilizatorii NGINX Plus, Ingress Controller, Gateway Fabric, Instance Manager și NGINX App Protect WAF: consultați avizele F5. Pentru mai multe produse nu exista încă o versiune corectată la 15 octombrie.
- Verifică configurația activă cu
nginx -Tși caută:aliasîntr-un location împreună curewrite- capturi din
mapcu regex folosite derootsaulog_format aioîmpreună cussilisten … quic(HTTP/3)ssl_session_cache sharedfărăssl_session_ticket_key
- Dacă nu poți actualiza imediat, aplică soluțiile temporare din tabel — cu prioritate pentru fix-ul TLS pe orice endpoint mTLS.
- Inventariază toate instanțele NGINX, inclusiv containere, ingress controllere și echipamente care îl includ — acolo se ascund versiunile vechi.
- Actualizează și njs la 1.0.2, lansat în aceeași zi pentru două vulnerabilități medii de procesare XML (CVE-2026-101025, CVE-2026-101019).
Evaluările externe 4Tify semnalează versiunile NGINX învechite și configurațiile TLS riscante, ca parte a acoperirii CVE pentru tehnologiile detectate.
Sursa: relatare inițială publicată de The Hacker News; acest articol este rezumatul și analiza independentă 4Tify.
