Înapoi la Noutăți
Amenințări

NGINX corectează cinci vulnerabilități, inclusiv posibil RCE și ocolirea certificatelor client TLS

NGINX 1.30.6 și 1.31.7 repară trei bug-uri de memorie evaluate de F5 la 9.2, o problemă cu cheile de sesiune TLS care poate ocoli verificarea certificatelor client și o problemă HTTP/3. Niciuna nu apare pe instalarea implicită — iată cum verifici dacă ești expus.

NGINX corectează cinci vulnerabilități, inclusiv posibil RCE și ocolirea certificatelor client TLS

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

CVEImpactEști expus dacă…Versiuni afectateSoluție temporară
CVE-2026-15176Heap overflow → crash worker, posibil RCEUn 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.6Renunță la alias în acel location sau nu mai folosi $request_filename
CVE-2026-93479Heap overflow → crash worker, posibil RCEUn map cu regex ale cărui capturi sunt folosite de root sau log_format înaintea variabilei de ieșire1.30.0 – 1.30.5, 1.31.2 – 1.31.6Folosește capturi denumite, doar în blocul cu potrivirea regex
CVE-2026-97205Use-after-free → crash / coruperea memoriei, posibil RCEaio activ și pagini SSI cu include virtual (în anumite configurații)0.8.11 – 1.31.6Dezactivează aio sau nu mai servi pagini SSI
CVE-2026-95101Octeți injectați într-o cerere proxy; corpul poate depăși client_max_body_sizeHTTP/3 cu proxy_request_buffering on (implicit)1.25.0 – 1.31.6proxy_request_buffering off
CVE-2026-97629Sesiune TLS falsificată ce poate ocoli verificarea certificatului clientssl_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 rewrite schimbă URI-ul și înainte de alegerea următorului location, citirea $request_filename cu 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

  1. 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.
  2. 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.
  3. Verifică configurația activă cu nginx -T și caută:
    • alias într-un location împreună cu rewrite
    • capturi din map cu regex folosite de root sau log_format
    • aio împreună cu ssi
    • listen … quic (HTTP/3)
    • ssl_session_cache shared fără ssl_session_ticket_key
  4. Dacă nu poți actualiza imediat, aplică soluțiile temporare din tabel — cu prioritate pentru fix-ul TLS pe orice endpoint mTLS.
  5. Inventariază toate instanțele NGINX, inclusiv containere, ingress controllere și echipamente care îl includ — acolo se ascund versiunile vechi.
  6. 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.

DISTRIBUIE