È stato presentato il primo rilascio della nuova versione principale di nginx 1.27.0, che continuerà a sviluppare nuove funzionalità. Contemporaneamente è stato creato il rilascio di nginx 1.26.1, che appartiene alla versione stabile supportata in parallelo, in cui vengono apportate solo modifiche legate alla risoluzione di gravi bug e vulnerabilità. L'anno prossimo, sulla base della versione principale 1.27.x, sarà creata una versione stabile 1.28. Il codice del progetto è scritto in C e distribuito con licenza BSD.
Nei nuovi rilasci sono state corrette 4 vulnerabilità che interessano il modulo sperimentale ngx_http_v3 (disabilitato per impostazione predefinita), che fornisce supporto per il protocollo HTTP/3, utilizzando il protocollo QUIC come trasporto per HTTP/2. I problemi si manifestano solo quando si attiva il modulo ngx_http_v3_module e si imposta l'opzione «quic» nella direttiva «listen». Non ci sono attualmente notizie sulla vulnerabilità dei fork Angie e FreeNginx.
La vulnerabilità CVE-2024-34161 porta a una perdita di contenuto della memoria del processo di lavoro su sistemi con MTU impostato a un valore superiore a 4096 byte. La perdita di contenuto della memoria si verifica durante l'invio di frame CRYPTO, utilizzati durante la negoziazione della connessione, nella fase dopo l'invio del messaggio finale da parte del client.
Le vulnerabilità CVE-2024-31079, CVE-2024-32760 e CVE-2024-35200 sono causate da corruzione di memoria e consentono a un attaccante remoto di causare un arresto anomalo del processo di lavoro di nginx tramite l'instaurazione di una sessione appositamente formattata basata sul protocollo QUIC. Per le vulnerabilità CVE-2024-31079 e CVE-2024-32760 non si escludono ulteriori conseguenze dell'attacco (possibilità potenziale di esecuzione di codice dell'attaccante?). Non vengono fornite ulteriori dettagli, ma dai correttivi nel codice emerge che le vulnerabilità sono causate da accessi a memoria già liberata (use-after-free), allocazione errata di memoria per un array, dereferenziazione di un puntatore nullo e mancanza di verifica adeguata della dimensione dei dati inseriti nel buffer.
Tra le modifiche non correlate alla risoluzione delle vulnerabilità in nginx 1.27.0:
- Nelle direttive «proxy_limit_rate», «fastcgi_limit_rate», «scgi_limit_rate» e «uwsgi_limit_rate» è stata aggiunta la possibilità di specificare variabili.
- Ridotto il consumo di memoria durante l'elaborazione di richieste a lungo termine nelle configurazioni che utilizzano le direttive «gzip», «gunzip», «ssi», «sub_filter» o «grpc_pass».
- Risolti i problemi di compilazione in GCC 14 quando si utilizza l'opzione «—with-atomic».
- Corrette le problematiche nell'implementazione di HTTP/3.
Inoltre, si segnala la pubblicazione del nuovo ramo principale FreeNginx 1.27.0, un fork di Nginx sviluppato da Maksim Dunin, uno dei principali sviluppatori di Nginx. FreeNginx è posizionato come un progetto non commerciale, che garantisce lo sviluppo della base di codice di Nginx senza interferenze aziendali. Nella nuova versione è stata migliorata la gestione degli errori durante la lettura del corpo della richiesta, sono stati sistemati i problemi di compilazione in NetBSD 10.0 e migliorata la registrazione dei file PID (nella direttiva «pid» è stato aggiunto il parametro «off»).
Fonte: opennet.ru
