A fost lansată versiunea principală a nginx 1.27.4, în cadrul căreia continuă dezvoltarea de noi funcționalități, precum și lansarea unei ramuri stabile, nginx 1.26.3, care primește doar modificări legate de eliminarea erorilor grave și a vulnerabilităților. În actualizări a fost remediată vulnerabilitatea (CVE-2025-23419), care permitea ocolirea verificării certificatelor TLS ale clienților.
Vulnerabilitatea este cauzată de lipsa verificărilor adecvate în procesarea găzduirilor virtuale legate de un singur IP și număr de port, alese în baza numelui de domeniu specificat prin extensia TLS SNI. În asemenea configurații, un atacator putea reutiliza sesiunea TLS în contextul unei alte găzduiri virtuale pentru a ocoli autentificarea cu certificatul TLS al clientului. Problema se manifestă în configurațiile care susțin reluarea sesiunilor TLS prin intermediul «TLS session ticket» sau care utilizează cache-ul sesiunilor TLS în setări. server implicit, în care este utilizată autentificarea cu certificate TLS ale clienților. Vulnerabilitatea există începând cu versiunea nginx 1.11.4, atunci când este compilat cu OpenSSL și cu protocolul TLSv1.3 activat.
Modificări nespecifice securității:
- Au fost adăugate opțiuni pentru reducerea consumului de resurse și diminuarea încărcării pe CPU atunci când se folosește TLS în configurații cu un număr mare de blocuri server și location. Modificările adăugate permit utilizarea contextului SSL deja existent din blocul părinte, în loc să se creeze un context SSL separat (SSL_CTX în OpenSSL) pentru fiecare bloc de configurație.
- Au fost rezolvate problemele legate de încărcarea îndelungată a fișierelor de configurare din cauza reanalizării aceleași seturi certificatelor TLS, chei și liste de autoritate de certificat. S-a accelerat repornirea configurației prin reutilizarea obiectelor TLS care nu s-au modificat, cum ar fi certificatele, cheile și CRL. Pentru a dezactiva moștenirea obiectelor în timpul actualizării configurației, a fost adăugată direcția «ssl_object_cache_inheritable».
- A fost adăugat un cache pentru certificate și chei încărcate cu ajutorul variabilelor în directive (de exemplu, «ssl_certificate /etc/ssl/$ssl_server_name.crt»). Au fost adăugate directivele «ssl_certificate_cache», «proxy_ssl_certificate_cache», «grpc_ssl_certificate_cache» și «uwsgi_ssl_certificate_cache» pentru a gestiona cache-ul. Prin aceste directive, se poate configura dimensiunea maximă a cache-ului, timpul de valabilitate a înregistrărilor și timpul de curățare a înregistrărilor nefolositoare. De exemplu: «ssl_certificate_cache max=1000 inactive=20s valid=1m;».
- A fost introdusă directiva «keepalive_min_timeout», care definește timeout-ul în care nginx nu va închide conexiunea keep-alive cu clientul.
- A fost rezolvată problema apariției mesajului din jurnale «gzip filter failed to use preallocated memory» când se compilează cu biblioteca zlib-ng.
- A fost remediată problema cu compilarea bibliotecii libatomic, atunci când se utilizează opțiunea de compilare «—with-libatomic=DIR».
- A fost eliminată o eroare care împiedica stabilirea conexiunii prin protocolul QUIC atunci când se utilizează 0-RTT.
- S-a asigurat ignorarea cererilor de negociere a versiunilor QUIC provenite de la clienți.
- Au fost rezolvate problemele de compilare în Solaris 10 cu modul ngx_http_v3_module.
- Au fost corectate erorile în implementarea HTTP/3.
Sursa: opennet.ro
