Foi apresentada a primeira versão do novo branch principal do nginx 1.27.0, dentro do qual o desenvolvimento de novos recursos continuará. Ao mesmo tempo, foi lançado o nginx 1.26.1, que pertence ao ramo estável com suporte paralelo, que inclui apenas alterações relacionadas à eliminação de erros graves e vulnerabilidades. No próximo ano, com base no branch principal 1.27.x, um branch estável 1.28 será formado. O código do projeto é escrito em C e distribuído sob a licença BSD.
As novas versões corrigem 4 vulnerabilidades que afetam o módulo experimental ngx_http_v3 (desativado por padrão), que fornece suporte para o protocolo HTTP/3 usando o protocolo QUIC como transporte para HTTP/2. Os problemas aparecem apenas quando o módulo ngx_http_v3_module está ativado e a opção “quic” está definida na diretiva “listen”. Ainda não há informações sobre a vulnerabilidade dos forks Angie e FreeNginx.
A vulnerabilidade CVE-2024-34161 faz com que a memória do processo de trabalho vaze em sistemas com um valor MTU superior a 4096 bytes. Um vazamento de memória ocorre quando os frames CRYPTO usados na negociação da conexão são enviados após o cliente enviar a mensagem de finalização.
As vulnerabilidades de corrupção de memória CVE-2024-31079, CVE-2024-32760 e CVE-2024-35200 permitem que um invasor remoto trave um processo de trabalho nginx estabelecendo uma sessão especialmente criada com base no protocolo QUIC. Ao mesmo tempo, para as vulnerabilidades CVE-2024-31079 e CVE-2024-32760, outras consequências do ataque não podem ser excluídas (a possibilidade potencial de executar o código do atacante?). Os detalhes não são fornecidos, mas a julgar pelas correções no código, as vulnerabilidades são causadas pelo acesso à memória já liberada (uso após liberação), alocação incorreta de memória para uma matriz, desreferência de ponteiro nulo e falta de verificação adequada do tamanho de dados colocados no buffer.
Entre as mudanças não relacionadas à eliminação de vulnerabilidades no nginx 1.27.0:
- Foi adicionado suporte para especificação de variáveis às diretivas "proxy_limit_rate", "fastcgi_limit_rate", "scgi_limit_rate" e "uwsgi_limit_rate".
- Redução do consumo de memória ao processar solicitações de longa duração em configurações que utilizam as diretivas "gzip", "gunzip", "ssi", "sub_filter" ou "grpc_pass".
- Resolvidos problemas de redefinição no GCC 14 ao usar a opção "--with-atomic".
- Erros na implementação do HTTP/3 foram corrigidos.
Além disso, podemos notar a publicação do novo branch principal do FreeNginx 1.27.0, um fork do Nginx desenvolvido por Maxim Dunin, um dos principais desenvolvedores do Nginx. O FreeNginx está posicionado como um projeto sem fins lucrativos que fornece o desenvolvimento da base de código Nginx sem intervenção corporativa. A nova versão melhorou o tratamento de erros na leitura do corpo da solicitação, melhorou a montagem no NetBSD 10.0 e melhorou a gravação de arquivos PID (o parâmetro “off” foi adicionado à diretiva “pid”).
Fonte: opennet.ru
