Se ha lanzado la primera versión de la nueva rama principal nginx 1.27.0, en la que se continuará desarrollando nuevas funcionalidades. Al mismo tiempo, se ha formado la versión nginx 1.26.1, correspondiente a la rama estable que se mantiene paralelamente, en la que solo se introducen cambios relacionados con la corrección de errores graves y vulnerabilidades. El próximo año, se formará una rama estable 1.28 basada en la rama principal 1.27.x. El código del proyecto está escrito en C y se distribuye bajo la licencia BSD.
En las nuevas versiones se han corregido 4 vulnerabilidades que afectan al módulo experimental ngx_http_v3 (desactivado por defecto), que proporciona soporte para el protocolo HTTP/3, que utiliza el protocolo QUIC como transporte para HTTP/2. Los problemas solo se manifiestan al activar el módulo ngx_http_v3_module y establecer la opción «quic» en la directiva «listen». No se ha informado sobre la vulnerabilidad en los forks Angie y FreeNginx.
La vulnerabilidad CVE-2024-34161 causa filtraciones de contenido de memoria de los procesos de trabajo en sistemas con un MTU configurado a un valor mayor de 4096 bytes. La fuga de contenido de memoria ocurre cuando se envían tramas CRYPTO, que se utilizan para establecer la conexión, en la etapa posterior al envío del mensaje final por parte del cliente.
Las vulnerabilidades CVE-2024-31079, CVE-2024-32760 y CVE-2024-35200 son causadas por daños en la memoria y permiten a un atacante remoto provocar la caída del proceso de trabajo de nginx a través de una sesión especialmente diseñada basada en el protocolo QUIC. En el caso de las vulnerabilidades CVE-2024-31079 y CVE-2024-32760, no se excluyen otras consecuencias del ataque (¿potencial posibilidad de ejecución de código del atacante?). No se proporcionan detalles, pero según las correcciones en el código, las vulnerabilidades son causadas por accesos a memoria ya liberada (uso después de liberar), incorrecta asignación de memoria para un arreglo, desreferencia de un puntero nulo y falta de comprobación adecuada del tamaño de los datos almacenados en el búfer.
Entre los cambios no relacionados con la corrección de vulnerabilidades en nginx 1.27.0:
- Se ha añadido soporte para la especificación de variables en las directivas «proxy_limit_rate», «fastcgi_limit_rate», «scgi_limit_rate» y «uwsgi_limit_rate».
- Se ha reducido el consumo de memoria al procesar solicitudes de larga duración en configuraciones que utilizan las directivas «gzip», «gunzip», «ssi», «sub_filter» o «grpc_pass».
- Se han resuelto problemas de fallos en GCC 14 al usar la opción "--with-atomic".
- Se corrigieron errores en la implementación de HTTP/3.
Además, se puede destacar la publicación de la nueva rama principal FreeNginx 1.27.0, un fork de Nginx, desarrollado por Maksim Dunin, uno de los desarrolladores clave de Nginx. FreeNginx se posiciona como un proyecto sin fines de lucro que asegura el desarrollo de la base de código de Nginx sin intervención corporativa. En esta nueva versión, se mejoró el manejo de errores durante la lectura del cuerpo de la solicitud, se configuró la compilación en NetBSD 10.0 y se mejoró la escritura de archivos PID (se añadió el parámetro "off" a la directiva "pid").
Fuente: opennet.ru
