Două Decenii de Vulnerabilități Nginx: De Ce NGINX Rift Te Obligă să Pătezi Azi
Două Decenii de Vulnerabilități în Nginx: De Ce "NGINX Rift" Te Obligă Să Faci Update Azi
Codul vechi ascunde riscuri mari de securitate. Dar ce te faci când un astfel de cod vechi de 18 ani rulează pe unul dintre cele mai populare servere web de pe internet?
F5 a lansat recent patch-uri pentru patru vulnerabilități în Nginx. Cea mai gravă, CVE-2026-42945 – poreclită "NGINX Rift" de descoperitorii de la depthfirst – cere acțiune imediată în orice echipă de infrastructură.
O Furtună Perfectă: Cod Vechi, Efecte Noi
Iată de ce această breșă e atât de periculoasă:
Problema: Un buffer overflow în heap, ascuns în modulul rewrite al Nginx. Există din varianta 0.6.27, din 2008. Adică înainte de Docker, înainte de smartphone-uri și înainte ca Nginx să devină alegerea nr. 1 în fața Apache.
Cum atacă: Un intrus fără autentificare trimite un singur request HTTP malițios. Fără lanțuri complexe, fără phishing, fără furt de parole.
Consecințe: Fără ASLR activat, devine execuție de cod de la distanță. Sfârșit de joc. Cu ASLR pornit, ai DoS garantat – worker-ii se prăbușesc în buclă infinită.
Scor CVSS: 9.2 Critical. Aproape de maxim.
De Ce A Supraviețuit Atât de Mult?
Cum a scăpat după 20 de ani? Răspunsul spune multe despre securitatea software-ului.
Modulul rewrite folosește PCRE pentru potriviri URL. Când regulile au capturi anonime ($1, $2 etc.), urmate de rewrite, if sau set, scrii dincolo de memoria alocată. Buffer overflow clasic, ratat la review.
Proiecte open-source populare ca Nginx nu sunt imune la bug-uri vechi. Milioane de servere îl folosesc. Raza de acțiune e uriașă.
Cine Trebuie Să Intervină Imediat
Utilizatori NGINX Plus: Dacă ai R32-R36, aplică R32 P6 sau R36 P4.
Utilizatori Open Source: Variațiile 1.0.0-1.30.0 afectate. Treci la 1.30.1 sau 1.31.0 acum.
Excepție dureroasă: Variații 0.6.27-0.9.7 (EOL vechi) nu primesc patch. Upgrade complet obligatoriu.
Fără Timp de Patch? Soluție Temporară
În congelare de schimbări sau cu dependențe vechi? Mitigează așa:
Înlocuiește capturile anonime PCRE cu nume în reguli rewrite. Folosește grupuri numite ca $nume_grup în loc de $1, $2. Blochează calea care declanșează overflow-ul.
Exemplu:
# Vulnerabil
rewrite ^/user/([0-9]+)$ /profile?id=$1 last;
# Temporar sigur
rewrite ^/user/(?<id>[0-9]+)$ /profile?id=$id last;
E plasture, nu leac. Prioritează patch-ul.
Celelalte Trei CVE-uri Patch-uite
Pe lângă NGINX Rift, F5 a rezolvat:
- CVE-2026-42946 (CVSS 8.3 High): Alocare excesivă memorie în modulele SCGI/uWSGI – DoS în proxy-uri specifice.
- CVE-2026-40701 (CVSS 6.3 Medium): Use-after-free în modul SSL, activat de ssl_verify_client sau ssl_ocsp.
- CVE-2026-42934 (CVSS 4.8 Medium): Citire out-of-bounds în modul charset.
Nu sunt critice ca Rift, dar rezolvă-le la următoarea mentenanță.
Lecții Pentru Securitatea Infrastructurii
Această breșă ne amintește adevăruri dure:
Popularitatea nu protejează. Nginx e peste tot, dar bug-ul a stat 18 ani nedetectat.
Vechimea nu înseamnă testat. Cod vechi adună probleme, nu securitate.
Securitatea ta = cel mai lent patch. O instanță neonată compromite totul.
Monitorizează constant. Chiar cu ASLR, DoS-ul lovește instant.
Concluzie
Dacă ai Nginx – Open Source sau Plus – tratează patch-urile ca urgență. Vârsta mare, atac simplu și severitate critică îl fac prioritate absolută.
Updatează săptămâna asta. Testează în staging, dar nu amâna în producție. Riscul de a sta vulnerabil bate orice frică de update la un soft stabil ca Nginx.
N-ai revizuit configurile? Acum e momentul să verifici regulile rewrite, să întărești securitatea și să scapi de versiuni vechi prin infrastructură.
Fii în siguranță!