O Node.js publicou 11 avisos nesta data: três de gravidade alta, cinco moderada e três baixa. As correções estão nas versões 22.23.2, 24.18.1 e 26.5.1, conforme as linhas indicadas em cada ficha. O comunicado oficial de segurança de julho de 2026 está na fonte de cada ficha. Consulte process.version no processo da aplicação para identificar o runtime efetivamente carregado e compare o resultado com a faixa correspondente.
Aplicativo
Node.js
Data do compilado
Vulnerabilidades
11
A indicação de correção disponível se refere ao projeto Node.js. Você ainda precisa atualizar e reiniciar os processos da aplicação para carregar o runtime corrigido. A fonte não informa pontuações CVSS. As conferências propostas devem ser adaptadas à sua aplicação, com testes em homologação.
Gravidade altaCorreção disponível
Cabeçalhos retidos no HTTP/2 escapam do limite de memória da sessão
O limite maxSessionMemory não considera corretamente certos blocos de cabeçalhos que permanecem retidos durante o processamento HTTP/2. Uma conexão remota pode provocar consumo de memória além desse limite e esgotar a memória disponível. Assim, configurar o limite da sessão não corrige a falha nas versões afetadas das linhas 22.x e 24.x.
Casos de uso afetados
Você mantém um servidor com node:http2 que recebe conexões de clientes externos e usa maxSessionMemory para limitar a memória de cada sessão.
Um proxy encaminha HTTP/2 até o processo Node.js, que continua responsável por interpretar os cabeçalhos recebidos.
Confira na sua instância
Confira se o HTTP/2 termina no proxy ou chega ao Node.js e localize a configuração maxSessionMemory do servidor. Compare a versão do processo com as faixas desta ficha. Depois da atualização, acompanhe a memória do processo durante o tráfego HTTP/2 habitual e confirme que as conexões continuam funcionando. Um consumo estável nesse teste complementa a conferência da versão, mas não comprova sozinho a ausência da falha.
Versões afetadas e correções
Faixas declaradas no comunicado oficial, por linha de manutenção
Linha
Afetadas
Corrigidas
node 24.x
>= 24.0.0, < 24.18.1
24.18.1
node 22.x
>= 22.0.0, < 22.23.2
22.23.2
Gravidade altaCorreção disponível
Reentrada no processamento HTTP/2 acessa memória já liberada
Durante a execução de nghttp2_session_mem_recv(), o Node.js pode chamar nghttp2_session_mem_send() de forma reentrante. Essa sobreposição permite o acesso a uma região do heap depois de sua liberação, uma falha conhecida como heap-use-after-free. O problema está no processamento nativo de HTTP/2 e afeta as três linhas relacionadas nesta ficha.
Casos de uso afetados
Sua aplicação usa node:http2 para receber requisições e enviar respostas pela mesma sessão.
Você mantém um cliente HTTP/2 em Node.js que processa respostas e envia mensagens durante a comunicação com outro serviço.
Confira na sua instância
Localize os servidores e clientes criados com node:http2 e confira a versão de cada processo que mantém essas sessões. Depois de carregar a correção, execute os testes habituais de requisição, resposta e encerramento de streams. Examine os registros de saída dos processos para identificar encerramentos nativos inesperados, sem interpretar a ausência de falhas como substituta da atualização.
Versões afetadas e correções
Faixas declaradas no comunicado oficial, por linha de manutenção
Linha
Afetadas
Corrigidas
node 26.x
>= 26.0.0, < 26.5.1
26.5.1
node 24.x
>= 24.0.0, < 24.18.1
24.18.1
node 22.x
>= 22.0.0, < 22.23.2
22.23.2
O comunicado descreve o acesso à memória liberada, mas não informa execução remota de código como consequência confirmada.
Gravidade altaCorreção disponível
Comparação de prefixos amplia permissões de acesso a arquivos
O Permission Model mantém os caminhos autorizados em uma árvore de prefixos, chamada radix tree. Uma falha na separação desses prefixos pode estender uma autorização a caminhos fora da lista. Com --permission ativo, um atacante que já tenha acesso a um caminho pode explorar essa comparação para ler ou escrever em outros destinos.
Casos de uso afetados
Você restringe a leitura ou a escrita da aplicação a diretórios específicos por meio do Permission Model.
O processo executa código que recebe acesso limitado a arquivos e depende da comparação de caminhos do Node.js para manter essa restrição.
Confira na sua instância
Confira --permission e as listas de --allow-fs-read e --allow-fs-write na inicialização efetiva do serviço. Revise especialmente caminhos autorizados que compartilham prefixos com diretórios não autorizados. No runtime corrigido, use arquivos descartáveis para testar acessos permitidos e recusados, verificando leitura e escrita separadamente.
Versões afetadas e correções
Faixas declaradas no comunicado oficial, por linha de manutenção
Linha
Afetadas
Corrigidas
node 26.x
>= 26.0.0, < 26.5.1
26.5.1
node 24.x
>= 24.0.0, < 24.18.1
24.18.1
node 22.x
>= 22.0.0, < 22.23.2
22.23.2
Gravidade moderadaCorreção disponível
Reutilização de conexão HTTPS pode misturar identidades de certificados PFX
O HTTPS Agent usa uma chave interna para selecionar conexões reutilizáveis. Quando os certificados PFX são fornecidos em arrays de objetos, configurações diferentes podem produzir chaves coincidentes. Uma requisição pode então reutilizar uma conexão autenticada com outro certificado de cliente, misturando identidades na autenticação TLS mútua, ou mTLS.
Casos de uso afetados
Você compartilha um HTTPS Agent entre integrações que usam certificados de cliente diferentes e fornece a opção pfx como array de objetos.
Um serviço faz chamadas autenticadas para clientes distintos e reutiliza conexões HTTPS entre essas chamadas.
Confira na sua instância
Examine a criação dos HTTPS Agents e a forma usada para preencher pfx. Identifique os agentes compartilhados por certificados distintos. Após atualizar, faça chamadas de homologação com dois certificados de teste pelo mesmo agente e confira, no servidor de destino, qual identidade foi autenticada em cada chamada. Cada requisição deve corresponder ao certificado configurado para ela.
Versões afetadas e correções
Faixas declaradas no comunicado oficial, por linha de manutenção
Linha
Afetadas
Corrigidas
node 26.x
>= 26.0.0, < 26.5.1
26.5.1
node 24.x
>= 24.0.0, < 24.18.1
24.18.1
node 22.x
>= 22.0.0, < 22.23.2
22.23.2
Gravidade moderadaCorreção disponível
Sessões TLS reutilizadas podem omitir a verificação do nome do servidor
A correção anterior da CVE-2026-48934 ficou incompleta. Ao reutilizar sessões TLS entre políticas distintas de identidade, o HTTPS Agent pode deixar de verificar se o certificado corresponde ao nome do servidor esperado. Você pode ter uma conexão aceita sem a conferência de identidade exigida para aquela requisição.
Casos de uso afetados
Sua aplicação reutiliza sessões pelo HTTPS Agent e aplica verificações de identidade diferentes conforme a integração.
Você configura checkServerIdentity em chamadas HTTPS e depende dessa função para validar o nome apresentado pelo servidor.
Confira na sua instância
Revise os agentes compartilhados e as funções checkServerIdentity usadas pelas integrações. Com a versão corrigida, compare conexões novas e sessões reutilizadas em homologação. Inclua um certificado de teste cujo nome não corresponda ao destino e confira se a conexão é recusada conforme a política da aplicação nos dois casos.
Versões afetadas e correções
Faixas declaradas no comunicado oficial, por linha de manutenção
Linha
Afetadas
Corrigidas
node 26.x
>= 26.0.0, < 26.5.1
26.5.1
node 24.x
>= 24.0.0, < 24.18.1
24.18.1
node 22.x
>= 22.0.0, < 22.23.2
22.23.2
Ter instalado a correção anterior da CVE-2026-48934 não confirma que este problema adicional foi corrigido.
Gravidade moderadaCorreção disponível
Iterador antigo do SQLTagStore pode repetir gravações no SQLite
O SQLTagStore reutiliza instruções preparadas e as reinicia diretamente com sqlite3_reset(). Esse caminho não aplica a invalidação de iteradores introduzida para StatementSync. Por isso, um StatementSyncIterator antigo pode continuar executando uma instrução que já recebeu novos parâmetros, inclusive repetindo gravações no banco.
Casos de uso afetados
Você usa DatabaseSync#createTagStore() de node:sqlite e mantém um iterador aberto enquanto reutiliza a mesma instrução com outros parâmetros.
Uma rotina interrompe a leitura de resultados e retoma o iterador depois que outra chamada já reutilizou a instrução armazenada no SQLTagStore.
Confira na sua instância
Procure chamadas a createTagStore e acompanhe o ciclo de vida dos iteradores retornados. Verifique especialmente referências guardadas para consumo posterior e instruções reutilizadas durante esse intervalo. Após atualizar, execute os testes de persistência em um banco descartável e compare os registros gravados com as alterações esperadas, incluindo rotinas que interrompem uma iteração.
Versões afetadas e correções
Faixas declaradas no comunicado oficial, por linha de manutenção
Linha
Afetadas
Corrigidas
node 26.x
>= 26.0.0, < 26.5.1
26.5.1
node 24.x
>= 24.0.0, < 24.18.1
24.18.1
A fonte relaciona esta falha ao SQLTagStore de node:sqlite. Ela não permite atribuir o mesmo comportamento a outros drivers SQLite.
Gravidade moderadaCorreção disponível
Resposta DNS com mais de 256 registros A pode encerrar o processo
Uma consulta feita por dns.resolveAny() pode abortar o processo Node.js quando a resposta contém mais de 256 registros A. O efeito ultrapassa a falha de uma consulta individual, pois encerra a aplicação que a executou. A repetição dessa condição pode manter o serviço indisponível.
Casos de uso afetados
Você oferece uma consulta de domínios que recebe o nome pela interface e usa dns.resolveAny() para buscar os registros.
Um processo de verificação de domínios executa resolveAny() no mesmo processo que atende às demais requisições da aplicação.
Confira na sua instância
Localize as chamadas a dns.resolveAny() e identifique a origem dos domínios consultados. Confira também se o histórico do serviço registra encerramentos abruptos durante consultas DNS. Depois da atualização, teste domínios válidos e inexistentes para verificar o tratamento de respostas e erros. A versão carregada deve corresponder à correção da linha usada.
Versões afetadas e correções
Faixas declaradas no comunicado oficial, por linha de manutenção
Linha
Afetadas
Corrigidas
node 26.x
>= 26.0.0, < 26.5.1
26.5.1
node 24.x
>= 24.0.0, < 24.18.1
24.18.1
node 22.x
>= 22.0.0, < 22.23.2
22.23.2
Gravidade moderadaCorreção disponível
byteLength adulterado pode encerrar chamadas síncronas de node:zlib
As funções síncronas de node:zlib podem atingir uma asserção interna quando recebem uma TypedArray com byteLength adulterado. A inconsistência no tamanho informado provoca o encerramento do processo, em vez de permanecer limitada ao processamento daquela entrada. A repetição do acionamento pode causar negação de serviço.
Casos de uso afetados
Você usa funções síncronas de node:zlib e recebe objetos TypedArray produzidos por código que consegue modificar a propriedade byteLength.
Uma extensão da aplicação prepara buffers para compressão ou descompressão síncrona dentro do mesmo processo do serviço.
Confira na sua instância
Localize as funções síncronas de node:zlib e acompanhe a criação das TypedArrays fornecidas a elas. Confira se alguma extensão ou dependência pode alterar byteLength e examine os registros de encerramento por asserção. Com a versão corrigida, execute os testes de compressão e descompressão com buffers válidos e entradas inválidas já previstas pela aplicação, verificando o tratamento dos erros.
Versões afetadas e correções
Faixas declaradas no comunicado oficial, por linha de manutenção
Linha
Afetadas
Corrigidas
node 26.x
>= 26.0.0, < 26.5.1
26.5.1
node 24.x
>= 24.0.0, < 24.18.1
24.18.1
node 22.x
>= 22.0.0, < 22.23.2
22.23.2
O mecanismo descrito exige adulteração de byteLength. O aviso não afirma que qualquer arquivo comprimido inválido reproduza a falha.
Gravidade baixaCorreção disponível
Logs de trace podem ser gravados fora dos caminhos autorizados
A chamada trace_events.createTracing().enable() pode iniciar a gravação de logs em um caminho não autorizado por --allow-fs-write. O Permission Model deixa de aplicar a restrição de escrita nessa funcionalidade, permitindo que registros de execução sejam gravados fora do destino previsto. O comunicado também aponta possível comprometimento da confidencialidade nas configurações afetadas.
Casos de uso afetados
Você executa a aplicação com o Permission Model e autoriza escrita apenas em um diretório específico, mas o código também habilita trace events.
Uma dependência de diagnóstico chama createTracing().enable() dentro de um processo com permissões de arquivos limitadas.
Confira na sua instância
Revise os argumentos usados para iniciar o serviço e compare os caminhos de --allow-fs-write com o destino dos arquivos de trace. Procure chamadas a createTracing e enable no código e nas dependências de diagnóstico. Com o runtime corrigido, teste a geração de um trace no diretório autorizado e confira o local efetivo do arquivo.
Versões afetadas e correções
Faixas declaradas no comunicado oficial, por linha de manutenção
Linha
Afetadas
Corrigidas
node 26.x
>= 26.0.0, < 26.5.1
26.5.1
node 24.x
>= 24.0.0, < 24.18.1
24.18.1
node 22.x
>= 22.0.0, < 22.23.2
22.23.2
Gravidade baixaCorreção disponível
Relatórios do processo podem criar e sobrescrever arquivos sem permissão
A geração de relatórios por process.report pode escrever fora dos caminhos permitidos por --allow-fs-write. A falha também permite sobrescrever arquivos nesses destinos, ultrapassando as restrições configuradas no Permission Model. Além da alteração de arquivos, o comunicado aponta possível comprometimento da confidencialidade pelo conteúdo gravado nos relatórios.
Casos de uso afetados
Você usa process.report para diagnosticar falhas de uma aplicação iniciada com permissões de escrita limitadas.
O serviço permite configurar o nome ou o diretório do relatório e presume que --allow-fs-write recusará qualquer destino fora da lista autorizada.
Confira na sua instância
Confira process.report.directory, process.report.filename e os caminhos fornecidos às chamadas de geração de relatório. Compare o destino final com as permissões de escrita do serviço. No runtime corrigido, gere um relatório em homologação dentro de um diretório autorizado e confirme o nome e o caminho do arquivo criado.
Versões afetadas e correções
Faixas declaradas no comunicado oficial, por linha de manutenção
Linha
Afetadas
Corrigidas
node 26.x
>= 26.0.0, < 26.5.1
26.5.1
node 24.x
>= 24.0.0, < 24.18.1
24.18.1
node 22.x
>= 22.0.0, < 22.23.2
22.23.2
Gravidade baixaCorreção disponível
Cabeçalhos omitidos podem dessincronizar requisições em proxies
O Node.js pode omitir cabeçalhos que excedem maxHeadersCount ou maxHeaderPairs das propriedades visíveis de IncomingMessage, mas continuar usando esses cabeçalhos para delimitar a mensagem HTTP. Até Content-Length pode ficar ausente de req.headers, req.rawHeaders e req.headersDistinct enquanto o corpo continua sendo recebido. Um proxy que reconstrói os cabeçalhos a partir dessas propriedades e encaminha o corpo original por uma conexão reutilizada pode dessincronizar as requisições e permitir request smuggling.
Casos de uso afetados
Você mantém um proxy em Node.js que monta os cabeçalhos de saída a partir de IncomingMessage e encaminha o corpo original para o backend.
O encaminhamento reutiliza conexões com o backend e aceita requisições cujo número de cabeçalhos ultrapassa o limite configurado.
Confira na sua instância
Revise o trecho do proxy que copia os cabeçalhos e conecta o corpo recebido à requisição de saída. Confira os limites de cabeçalhos e a reutilização de conexões com o backend. Após atualizar, envie em homologação uma requisição inofensiva acima do limite configurado e confirme sua rejeição. Teste também uma requisição normal com corpo para conferir o encaminhamento completo.
Versões afetadas e correções
Faixas declaradas no comunicado oficial, por linha de manutenção
Linha
Afetadas
Corrigidas
node 26.x
>= 26.0.0, < 26.5.1
26.5.1
node 24.x
>= 24.0.0, < 24.18.1
24.18.1
node 22.x
>= 22.0.0, < 22.23.2
22.23.2
O cenário documentado combina reconstrução dos cabeçalhos, encaminhamento do corpo original e reutilização da conexão com o backend.
Programador há mais de 20 anos, fundador da Powertic e da Promovaweb. Embaixador do n8n no Brasil e da Baserow, Chatwoot, Miro e Kestra. Membro do Product Team do Mautic.
Canais oficiais
Nossos Links
Encontre a Promovaweb no canal que combina com o seu próximo passo.