Pubblicata la versione principale di nginx 1.29.1, in cui continua lo sviluppo di nuove funzionalità. Nella branch stabile parallela 1.28.x vengono apportate solo modifiche relative alla correzione di gravi errori e vulnerabilità. In seguito, sulla base della branch principale 1.29.x, verrà formata una branch stabile 1.30. Il codice del progetto è scritto in linguaggio C e distribuito con licenza BSD.
Nel nuovo rilascio:
- Risolta una vulnerabilità (CVE-2025-53859) nel modulo ngx_mail_smtp_module, che porta alla lettura di dati dall'area di memoria al di fuori del buffer durante l'elaborazione di valori di login e password appositamente formattati utilizzando il metodo di autenticazione 'none'. La vulnerabilità può portare a una fuga di contenuti della memoria del processo di lavoro nginx in una richiesta HTTP verso un server autenticazione. Patch.
- Per impostazione predefinita, la compressione dei certificati TLSv1.3 è disabilitata.
- Aggiunta la direttiva 'ssl_certificate_compression' per gestire la compressione di certificati TLS.
- È stata aggiunta al protocollo QUIC il supporto per la modalità 0-RTT, disponibile su sistemi con OpenSSL 3.5.1 e versioni più recenti.
- Risolto un errore che causava il buffering della risposta HTTP 103 durante l'uso di HTTP/2 e la direttiva 'early_hints'.
- Risolto un errore nel gestore del parametro 'none' nella direttiva 'smtp_auth'.
- Nell'implementazione di HTTP/3 è stato risolto un problema con la gestione del numero di porta nell'intestazione 'Host'.
- Risolto un problema che si manifestava quando si utilizzavano valori identici nelle intestazioni 'Host' e ':authority' durante l'uso di HTTP/2.
- Fixato il build su NetBSD 10.0.
Separatamente, l'azienda F5 ha presentato la versione preliminare del modulo ngx_http_acme, che offre funzionalità per l'automazione della richiesta, ricezione e aggiornamento dei certificati utilizzando il protocollo ACMEv2 (Automatic Certificate Management Environment), adottato dall'autorità di certificazione Let’s Encrypt. Con l'uso di http_acme, gli amministratori non devono preoccuparsi dell'aggiornamento dei certificati; in base ai parametri della configurazione, il modulo otterrà automaticamente i certificati necessari da Let’s Encrypt o da un altro servizio che supporta il protocollo ACME. Il codice del modulo è scritto in Rust utilizzando il SDK NGINX-Rust. acme_issuer letsencrypt { uri https://acme-v02.api.letsencrypt.org/directory; state_path /var/cache/nginx/acme-letsencrypt; accept_terms_of_service; } server { listen 80; # ACME HTTP-01 challenge location / { return 404; } } server { listen 443 ssl; server_name .example.com; acme_certificate letsencrypt; ssl_certificate $acme_certificate; ssl_certificate_key $acme_certificate_key; ssl_certificate_cache max=2; }
Fonte: opennet.ru
