De primaire tak van nginx 1.27.4 is uitgebracht, waarin de ontwikkeling van nieuwe mogelijkheden doorgaat, evenals de gelijktijdige ondersteuning van de stabiele tak nginx 1.26.3, die alleen wijzigingen bevat met betrekking tot het oplossen van ernstige fouten en kwetsbaarheden. In de updates is een kwetsbaarheid (CVE-2025-23419) verholpen die het mogelijk maakte om de controle van client TLS-certificaten te omzeilen.
De kwetsbaarheid is veroorzaakt door een gebrek aan adequate controles bij de verwerking van virtuele hosts die aan één IP-adres en poortnummer zijn verbonden en worden geselecteerd bij aanroep via HTTPS op basis van de domeinnaam die is opgegeven met behulp van de TLS-extensie SNI. In dergelijke configuraties kon een aanvaller de TLS-sessie hergebruiken in de context van een andere virtuele host om de authenticatie via het client TLS-certificaat te omzeilen. Het probleem manifesteert zich in configuraties die ondersteuning bieden voor het hervatten van TLS-sessies met behulp van "TLS session ticket" of die TLS-sessie-caching gebruiken in de instellingen. de server standaard, waarin client TLS-certificaatauthenticatie wordt gebruikt. De kwetsbaarheid is aanwezig sinds de release van nginx 1.11.4 bij compilatie met OpenSSL en met inschakeling van het TLSv1.3-protocol.
Niet-beveiligingsgerelateerde wijzigingen:
- Er zijn mogelijkheden toegevoegd om het resourceverbruik te verminderen en de belasting op de CPU te verlagen bij het gebruik van TLS in configuraties met een groot aantal server- en location-blokken. De toegevoegde wijzigingen maken het mogelijk om in plaats van voor elk configuratieblok een aparte SSL-context (SSL_CTX in OpenSSL) aan te maken, de bestaande SSL-context uit het bovenliggende blok te gebruiken.
- Er zijn problemen opgelost met lange laadtijden van configuratiebestanden als gevolg van de herhaalde parsing van dezelfde set TLS-certificatensleutels en lijsten van vertrouwde certificeringsinstanties. De herstart van de configuratie is versneld door het hergebruik van onveranderde TLS-objecten, zoals certificaten, sleutels en CRL. Om het erven van objecten bij het bijwerken van de configuratie uit te schakelen, is de richtlijn "ssl_object_cache_inheritable" toegevoegd.
- Caching voor certificaten en sleutels die zijn geladen met variabelen in de richtlijnen (bijvoorbeeld 'ssl_certificate /etc/ssl/$ssl_server_name.crt') is toegevoegd. Om de cache te beheren, zijn de richtlijnen 'ssl_certificate_cache', 'proxy_ssl_certificate_cache', 'grpc_ssl_certificate_cache' en 'uwsgi_ssl_certificate_cache' toegevoegd. Met deze richtlijnen kan de maximale cachegrootte, de tijdsduur van records en de tijd voor het opschonen van ongebruikte records worden ingesteld. Bijvoorbeeld: 'ssl_certificate_cache max=1000 inactive=20s valid=1m;'.
- De richtlijn 'keepalive_min_timeout' is toegevoegd, die de timeout definieert waarin nginx de keep-alive verbinding met de client niet zal sluiten.
- Een probleem met het verschijnen van logberichten "gzip filter failed to use preallocated memory" is opgelost bij compilatie met de zlib-ng-bibliotheek.
- Een probleem met de compilatie van de libatomic-bibliotheek is opgelost bij gebruik van de compilatie-optie "--with-libatomic=DIR".
- Een fout is verholpen die het onmogelijk maakte om verbinding te maken via het QUIC-protocol met gebruik van 0-RTT.
- Er is voorzien in het negeren van versieonderhandelingsverzoeken van QUIC die van clients komen.
- Problemen met de compilatie in Solaris 10 met de module ngx_http_v3_module zijn opgelost.
- Fouten in de implementatie van HTTP/3 zijn gecorrigeerd.
Bron: opennet.ru
