Aggiornamenti nginx 1.26.3 e 1.27.4 che risolvono una vulnerabilità relativa al TLS

È stato rilasciato l'aggiornamento della versione principale di nginx 1.27.4, che continuerà a sviluppare nuove funzionalità, insieme al rilascio di una versione stabile supportata parallelamente, nginx 1.26.3, che riceve solo aggiornamenti mirati alla risoluzione di errori critici e vulnerabilità. Negli aggiornamenti è stata corretta una vulnerabilità (CVE-2025-23419) che permetteva di eludere il controllo dei certificati TLS del client.

La vulnerabilità è causata dalla mancanza di controlli adeguati durante l'elaborazione degli host virtuali, associati a un unico indirizzo IP e numero di porta, selezionati durante le richieste HTTPS in base al nome di dominio specificato tramite l'estensione SNI del TLS. In tali configurazioni, un attaccante poteva riutilizzare una sessione TLS nel contesto di un altro host virtuale per eludere l'autenticazione tramite il certificato TLS del client. Il problema si manifesta in configurazioni che supportano il ripristino delle sessioni TLS utilizzando "TLS session ticket" o utilizzando la cache delle sessioni TLS nel server comportamento predefinito, in cui viene utilizzata l'autenticazione tramite certificati TLS del client. La vulnerabilità è presente a partire dalla versione 1.11.4 di nginx, compilata con OpenSSL e con il protocollo TLSv1.3 abilitato.

Modifiche non correlate alla sicurezza:

  • Sono state aggiunte funzionalità per ridurre il consumo di risorse e diminuire il carico sulla CPU durante l'uso del TLS in configurazioni con un numero elevato di blocchi server e location. Le modifiche aggiunte consentono di utilizzare un contesto SSL già esistente dal blocco padre invece di crearne uno separato per ciascun blocco di configurazione (SSL_CTX in OpenSSL).
  • Sono stati risolti i problemi con il lungo tempo di caricamento dei file di configurazione a causa della ripetuta analisi dello stesso insieme di certificati TLS, chiavi e elenchi di autorità di certificazione. È stata accelerata la ricarica della configurazione grazie al riutilizzo degli oggetti TLS invariati, come certificati, chiavi e CRL. Per disabilitare l'ereditarietà degli oggetti durante l'aggiornamento della configurazione, è stata aggiunta la direttiva "ssl_object_cache_inheritable".
  • Aggiunta la cache per certificati e chiavi caricati utilizzando variabili nelle direttive (ad esempio, «ssl_certificate /etc/ssl/$ssl_server_name.crt»). Per gestire la cache, sono state aggiunte le direttive «ssl_certificate_cache», «proxy_ssl_certificate_cache», «grpc_ssl_certificate_cache» e «uwsgi_ssl_certificate_cache». Attraverso queste direttive è possibile configurare la dimensione massima della cache, il tempo di validità delle voci e il tempo di pulizia per le voci non utilizzate. Ad esempio: «ssl_certificate_cache max=1000 inactive=20s valid=1m;».
  • Aggiunta la direttiva «keepalive_min_timeout», che definisce il timeout durante il quale nginx non chiuderà la connessione keep-alive con il client.
  • Risolto il problema con l'apparizione del messaggio di log «gzip filter failed to use preallocated memory» durante la compilazione con la libreria zlib-ng.
  • Risolto il problema con la compilazione della libreria libatomic, utilizzando l'opzione di compilazione «—with-libatomic=DIR».
  • Eliminato un errore che impediva l'instaurazione di una connessione tramite il protocollo QUIC durante l'utilizzo di 0-RTT.
  • Garantito l'ignore delle richieste di negoziazione delle versioni QUIC provenienti dai client.
  • Risolti problemi di compilazione in Solaris 10 con il modulo ngx_http_v3_module.
  • Corrette le problematiche nell'implementazione di HTTP/3.

Fonte: opennet.ru

Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server 🔥 Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server | ProHoster