Foi lançado o primeiro lançamento da nova versão principal do nginx 1.27.0, onde o desenvolvimento de novas funcionalidades continuará. Simultaneamente, foi formado o lançamento nginx 1.26.1, referente à versão estável suportada em paralelo, na qual são feitas apenas alterações relacionadas à correção de erros graves e vulnerabilidades. No próximo ano, uma versão estável 1.28 será formada com base na nova versão 1.27.x. O código do projeto é escrito em C e distribuído sob a licença BSD.
Nos novos lançamentos, 4 vulnerabilidades foram corrigidas, afetando o módulo experimental ngx_http_v3 (desativado por padrão), que oferece suporte ao protocolo HTTP/3, usando o protocolo QUIC como transporte para HTTP/2. Os problemas ocorrem apenas quando o módulo ngx_http_v3_module é ativado e a opção 'quic' é definida na diretiva 'listen'. Não há informações sobre a suscetibilidade das versões Angie e FreeNginx a estas vulnerabilidades.
A vulnerabilidade CVE-2024-34161 resulta em vazamento de conteúdo de memória do processo de trabalho em sistemas com MTU configurado para um valor maior que 4096 bytes. O vazamento de conteúdo da memória ocorre quando quadros CRYPTO, usados na negociação da conexão, são enviados após o cliente enviar a mensagem de finalização.
As vulnerabilidades CVE-2024-31079, CVE-2024-32760 e CVE-2024-35200 são causadas por corrupção de memória e permitem que um atacante remoto provoque a falha do processo de trabalho do nginx ao estabelecer uma sessão especialmente formada com base no protocolo QUIC. Nesse caso, para as vulnerabilidades CVE-2024-31079 e CVE-2024-32760, não se excluem outras consequências do ataque (possível execução de código do atacante?). Os detalhes não são fornecidos, mas, pelo que é visto nas correções do código, as vulnerabilidades são causadas por acessos à memória já liberada (use-after-free), alocação de memória incorreta para um array, desreferenciação de um ponteiro nulo e falta de verificação adequada do tamanho dos dados armazenados no buffer.
Entre as mudanças não relacionadas à correção de vulnerabilidades no nginx 1.27.0:
- Foi adicionada a suporte à indicação de variáveis nas diretivas 'proxy_limit_rate', 'fastcgi_limit_rate', 'scgi_limit_rate' e 'uwsgi_limit_rate'.
- O consumo de memória foi reduzido ao processar solicitações de longa duração em configurações que utilizam as diretivas 'gzip', 'gunzip', 'ssi', 'sub_filter' ou 'grpc_pass'.
- Resolvidos os problemas com a construção no GCC 14 ao usar a opção "--with-atomic".
- Foram corrigidos erros na implementação do HTTP/3.
Além disso, vale destacar a publicação da nova versão principal do FreeNginx 1.27.0, um fork do Nginx, desenvolvido por Maksim Dunin, um dos principais desenvolvedores do Nginx. O FreeNginx é posicionado como um projeto sem fins lucrativos, garantindo o desenvolvimento da base de código do Nginx sem intervenção corporativa. Na nova versão, a manipulação de erros durante a leitura do corpo da solicitação foi aprimorada, a construção no NetBSD 10.0 foi estabelecida e a gravação de arquivos PID foi melhorada (o parâmetro "off" foi adicionado à diretiva "pid").
Fonte: opennet.ru
