Node.js corrige falhas graves em Tls, Dns e brotli nas versões 26.12.1, 24.22.1 e 22.23.4

4 минут чтения

Node.js corrige falhas graves em TLS, DNS e Brotli

O Node.js recebeu novas atualizações de segurança para as linhas 26.x, 24.x e 22.x. Os pacotes corrigem dez vulnerabilidades, quatro delas classificadas como de alta gravidade. Entre os pontos mais sensíveis estão a descompressão de dados Brotli, a validação de certificados TLS e o tratamento de consultas DNS.

As versões corrigidas são Node.js 26.12.1, 24.22.1 e 22.23.4. A falha com maior potencial de impacto, identificada como CVE-2026-111497, está no decodificador Brotli e afeta as três linhas. Ela pode provocar uma escrita fora dos limites da memória e, em determinadas circunstâncias, permitir a execução remota de código. Aplicações que descompactam conteúdo recebido de fontes não confiáveis devem ser priorizadas na atualização.

Problemas de validação em TLS e DNS

Duas vulnerabilidades de alta severidade envolvem a conferência dos nomes de host em certificados TLS. A CVE-2026-105483 pode permitir que essa verificação seja contornada quando o endereço IP contém dígitos de largura total. O problema atinge as versões 26.x e 24.x.

Já a CVE-2026-106069 afeta as três linhas e está relacionada a nomes de host que podem ser interpretados de forma permissiva como endereços IP. Em ambos os casos, o risco está na correspondência entre o certificado apresentado e o destino ao qual a aplicação pretende se conectar.

A quarta falha de alta gravidade, CVE-2026-105482, afeta a função `dns.resolve`. Nomes contendo um caractere NUL podem ser truncados durante o processamento, o que pode levar a diferenças entre o nome recebido pela aplicação e aquele efetivamente consultado. A vulnerabilidade está presente nas versões 26.x, 24.x e 22.x.

Esses problemas se somam a correções anteriores relacionadas à validação de certificados e à interpretação de nomes de host. Para sistemas que dependem de conexões HTTPS ou consultas DNS, manter o ambiente atualizado é essencial para reduzir a possibilidade de conexões estabelecidas com destinos incorretos.

Vulnerabilidades de gravidade média e baixa

A atualização também resolve três falhas de gravidade média, todas presentes nas linhas 26.x, 24.x e 22.x. A CVE-2026-105481 pode fazer com que um socket com keep-alive processe uma resposta que chegou antes do envio da requisição correspondente.

A CVE-2026-106072 trata de uma validação inadequada de certificados em nomes IPv4 fora do formato habitual. Com isso, um certificado associado a um nome DNS pode ser aceito para autenticar um endpoint IP. A CVE-2026-106074, por sua vez, envolve dados aleatórios mantidos em cache em snapshots de inicialização e em aplicações executáveis únicas. Processos iniciados a partir desses artefatos podem repetir valores gerados por `crypto.randomUUID()` e `crypto.randomInt()`.

Três outras vulnerabilidades receberam classificação baixa. A CVE-2026-106070 pode expor bytes controlados por um atacante quando ocorre uma falha na validação de cabeçalhos ZIP. A CVE-2026-106071 pode conceder acesso mais amplo ao sistema de arquivos por meio do uso de curingas; ambas afetam a linha 26.x. Já a CVE-2026-106073 permite contornar verificações do Permission Model usando `fs.realpathSync` e alcança as três linhas de lançamento.

Os pacotes incluem ainda atualizações de componentes como c-ares, certificados CA, Undici, OpenSSL e SQLite. A cobertura varia conforme a versão e o componente, por isso a atualização deve ser aplicada de acordo com a linha utilizada em cada ambiente.

Como reduzir o risco durante a atualização

Administradores devem instalar a versão corrigida correspondente à sua linha do Node.js e reiniciar os serviços afetados. Em ambientes conteinerizados, também é necessário reconstruir as imagens: atualizar o sistema em execução sem gerar uma nova imagem pode deixar instâncias antigas vulneráveis disponíveis para uso.

Após a implantação, vale testar os fluxos que fazem conexões HTTPS, consultam DNS ou processam arquivos ZIP e conteúdo Brotli. Também é recomendável revisar aplicações que recebem dados de usuários ou de serviços externos, pois elas podem estar mais expostas a conteúdo especialmente preparado para acionar falhas de processamento.

Sistemas que utilizam snapshots de inicialização ou aplicações executáveis únicas devem ser reconstruídos com as versões corrigidas. Essa etapa é particularmente importante para cargas de trabalho que dependem de valores aleatórios, já que apenas atualizar o ambiente sem regenerar os artefatos pode não eliminar o risco de repetição.

As equipes também devem verificar quais versões estão efetivamente instaladas nos servidores, contêineres, funções e estações de desenvolvimento. A presença de uma versão corrigida em um ambiente de teste não protege serviços de produção que continuem executando pacotes anteriores.

Por fim, organizações que ainda usam uma linha do Node.js fora do período de suporte precisam planejar a migração para uma versão mantida. Ramificações encerradas podem continuar vulneráveis sem receber novos pacotes de segurança; por isso, a correção depende não apenas da instalação de um patch, mas também da adoção de uma versão com suporte ativo.