Foi lançado o branch principal do nginx 1.27.4, que continua a desenvolver novas funcionalidades, ao mesmo tempo que é mantida a versão estável paralela nginx 1.26.3, a qual recebe apenas alterações relacionadas à correção de erros e vulnerabilidades graves. As atualizações corrigem uma vulnerabilidade (CVE-2025-23419) que permite contornar a verificação dos certificados TLS do cliente.
A vulnerabilidade é causada pela falta de verificações adequadas ao lidar com hosts virtuais vinculados a um único endereço IP e número da porta, selecionados ao acessar via HTTPS com base no nome do domínio especificado através da extensão TLS SNI. Neste tipo de configuração, um atacante poderia reutilizar a sessão TLS no contexto de outro host virtual para contornar a autenticação com o certificado TLS do cliente. O problema se manifesta em configurações que suportam a renovação de sessões TLS através de "TLS session ticket" ou que utilizam o cache de sessões TLS nas configurações padrão, onde a autenticação é feita com certificados TLS do cliente. servidor A vulnerabilidade está presente a partir do lançamento do nginx 1.11.4 quando compilado com OpenSSL e com o protocolo TLSv1.3 ativado.
Alterações não relacionadas à segurança:
- Foram adicionadas funcionalidades para reduzir o consumo de recursos e diminuir a carga do CPU ao utilizar TLS em configurações com um grande número de blocos server e location. As mudanças permitem, em vez de criar um contexto SSL (SSL_CTX em OpenSSL) separado para cada bloco de configuração, usar o contexto SSL existente do bloco pai.
- Foram resolvidos problemas de carregamento lento dos arquivos de configuração devido à reanálise do mesmo conjunto de chaves e listas de autoridades certificadoras. certificados TLSFoi acelerada a reinicialização da configuração por meio da reutilização dos objetos TLS inalterados, como certificados, chaves e CRL. Para desativar a herança de objetos ao atualizar a configuração, foi adicionada a diretiva "ssl_object_cache_inheritable".
- Foi adicionado cache para certificados e chaves carregados usando variáveis nas diretivas (por exemplo, "ssl_certificate /etc/ssl/$ssl_server_name.crt"). Foram adicionadas as diretivas "ssl_certificate_cache", "proxy_ssl_certificate_cache", "grpc_ssl_certificate_cache" e "uwsgi_ssl_certificate_cache" para gerenciar o cache. Através dessas diretivas, é possível configurar o tamanho máximo do cache, a duração das entradas e o tempo de limpeza das entradas não utilizadas. Por exemplo: "ssl_certificate_cache max=1000 inactive=20s valid=1m;".
- Foi adicionada a diretiva "keepalive_min_timeout", que define o timeout durante o qual o nginx não encerrará a conexão keep-alive com o cliente.
- Foi resolvido o problema com a aparição de mensagens de log "gzip filter failed to use preallocated memory" ao compilar com a biblioteca zlib-ng.
- Foi resolvido o problema com a compilação da biblioteca libatomic ao usar a opção de compilação "--with-libatomic=DIR".
- Foi corrigido um erro que impedia a conexão pelo protocolo QUIC ao usar 0-RTT.
- As solicitações de negociação de versões QUIC enviadas pelos clientes são agora ignoradas.
- Foram resolvidos problemas de compilação no Solaris 10 com o módulo ngx_http_v3_module.
- Foram corrigidos erros na implementação do HTTP/3.
Fonte: opennet.ru
