Udgivelsen af den primære nginx 1.27.4 gren er blevet formet, hvor udviklingen af nye muligheder fortsætter, samt udgivelsen af den stabilt understøttede gren nginx 1.26.3, som kun modtager ændringer relateret til rettelse af alvorlige fejl og sårbarheder. I opdateringerne er der rettet en sårbarhed (CVE-2025-23419), der gør det muligt at omgå kontrol af klient TLS-certifikater.
Sårbarheden skyldes fraværet af passende kontroller ved behandling af virtuelle værter, der er bundet til én IP-adresse og portnummer, og som vælges ved anmodning via HTTPS baseret på domænenavnet angivet ved hjælp af TLS-udvidelsen SNI. I sådanne konfigurationer kunne en angriber genbruge en TLS-session i konteksten af en anden virtuel vært for at omgå godkendelsen gennem klientens TLS-certifikat. Problemet viser sig i konfigurationer, der understøtter genoptagelse af TLS-sessioner ved hjælp af "TLS session ticket" eller bruger TLS-session cache i konfigurationen. server som standard, hvor godkendelse sker ved hjælp af klient TLS-certifikater. Sårbarheden har været til stede siden udgivelsen af nginx 1.11.4, når den er bygget med OpenSSL og har aktiveret TLSv1.3 protokollen.
Ikke-sikkerhedsrelaterede ændringer:
- New features have been added to reduce resource consumption and lessen CPU load when using TLS in configurations with a large number of server and location blocks. The changes allow the use of an existing SSL context from the parent block instead of creating a separate SSL context (SSL_CTX in OpenSSL) for each configuration block.
- Problemerne med lang indlæsning af konfigurationsfiler på grund af gentagen analyse af den samme samling TLS-certifikater, af nøgler og lister af certifikatmyndigheder er blevet løst. Genstart af konfigurationen er blevet accelereret ved at genbruge uændrede TLS-objekter såsom certifikater, nøgler og CRL. For at deaktivere arv af objekter ved opdatering af konfigurationen er direktivet "ssl_object_cache_inheritable" blevet tilføjet.
- Der er tilføjet en cache til certifikater og nøgler, der er indlæst med variabler i direktiver (f.eks. «ssl_certificate /etc/ssl/$ssl_server_name.crt»). Der er tilføjet direktiverne «ssl_certificate_cache», «proxy_ssl_certificate_cache», «grpc_ssl_certificate_cache» og «uwsgi_ssl_certificate_cache» til at styre cachen. Gennem de angivne direktiver kan den maksimale cache-størrelse, gyldighedsperiode for poster og ryddetid for uønskede poster indstilles. For eksempel: «ssl_certificate_cache max=1000 inactive=20s valid=1m;».
- Der er tilføjet direktivet «keepalive_min_timeout», som definerer timeout, hvor nginx ikke vil lukke keep-alive forbindelsen til klienten.
- Problemet med at logge beskeder "gzip filter failed to use preallocated memory" ved bygning med zlib-ng biblioteket er blevet løst.
- Problemet med at bygge libatomic biblioteket ved at bruge byggeoptionen "—with-libatomic=DIR" er blevet løst.
- Fejlen, der gjorde det umuligt at etablere forbindelse via QUIC protokollen under brug af 0-RTT, er blevet rettet.
- Anmodninger om QUIC versionsforhandling fra klienter ignoreres.
- Problemerne med bygning i Solaris 10 med ngx_http_v3_module er blevet løst.
- Fejlene i implementeringen af HTTP/3 er blevet rettet.
Kilde: opennet.ru
