Pular para o conteúdo

Node.js 22.23.3 LTS corrige um bug use-after-free no HTTP/2

O Node.js 22.23.3 LTS, lançado em 23 de setembro, corrige um bug use-after-free no HTTP/2, adiciona suporte a SharedArrayBuffer na Node-API e passa para o OpenSSL 3.5.8.

Por Tech AI Wire Team

3 min de leitura

XLinkedIn
The Notable Changes list from the Node.js 22.23.3 release notes, including the OpenSSL 3.5.8 update and the two Node-API changes.
Foto: Node.js

O projeto Node.js lançou o Node.js 22.23.3 em 23 de setembro de 2026, um patch para sua linha de suporte de longo prazo. A mudança mais importante corrige um bug use-after-free no HTTP/2, um erro de memória no código que lida com conexões HTTP/2. Quem serve HTTP/2 a partir do Node.js 22 deve planejar a atualização.

O Node.js é o runtime que permite rodar JavaScript em servidores, e não apenas no navegador. A versão 22 é uma versão de suporte de longo prazo (LTS). Isso significa que ela recebe correções por anos e é o que muitas empresas usam em produção. O codinome da versão é "Jod".

O que a correção do HTTP/2 muda

O HTTP/2 é a versão mais nova do principal protocolo da web. Ele permite que uma única conexão transporte muitas requisições ao mesmo tempo, cada uma em seu próprio "stream".

Um bug use-after-free acontece quando um programa continua usando um trecho de memória depois de devolvê-lo. O programa passa então a ler ou gravar dados que podem pertencer a outra coisa. Bugs desse tipo podem derrubar um programa, e é por isso que são corrigidos rapidamente.

Segundo o LinuxCompatible, o problema era uma condição de corrida em nghttp2_session_mem_recv2(). Essa função faz parte do nghttp2, a biblioteca que o Node.js usa para ler o tráfego HTTP/2. Se um stream fosse fechado enquanto dados recebidos ainda estavam sendo processados, o código podia acessar memória já liberada. A correção espera a etapa de recebimento terminar antes de tratar a mensagem de fechamento do stream, chamada RST_STREAM.

Nenhuma das duas fontes informa um número CVE ou uma classificação de gravidade para o bug. As notas de versão oficiais o listam como correção de bug. Ele não aparece nas publicações de versões de segurança do projeto, cuja entrada mais recente é de julho de 2026.

Novas funções da Node-API para SharedArrayBuffer

A Node-API é a interface estável que os add-ons nativos usam. Add-ons nativos são módulos escritos em C ou C++ que o Node.js carrega diretamente, como drivers de banco de dados ou bibliotecas de imagem.

Esta versão permite que esses add-ons trabalhem com SharedArrayBuffer, um bloco de memória que várias threads de JavaScript podem ler e gravar ao mesmo tempo. As notas de versão adicionam napi_create_external_sharedarraybuffer e ampliam napi_create_typedarray para aceitar um SharedArrayBuffer.

Outras correções e atualizações de dependências

Duas correções menores são listadas. Uma restaura a possibilidade de aplicar patches no módulo de sistema de arquivos fs quando o código é carregado pelo carregador de módulos ES. A outra corrige o escape de variáveis de ambiente no Windows.

A versão também atualiza as bibliotecas incluídas:

ComponenteNova versão
OpenSSL3.5.8
Certificados raizNSS 3.125
npm10.9.9
corepack0.36.0
Undici6.28.1
ICU78.3
c-ares1.34.8
Dados de fuso horário2026c

O OpenSSL cuida da criptografia do HTTPS. O Undici é o cliente HTTP por trás do fetch embutido do Node. Os certificados raiz definem em quais sites HTTPS o Node.js confia por padrão.

O que isso significa para desenvolvedores

Verifique se seus serviços em Node.js 22 falam HTTP/2 diretamente. Isso inclui servidores construídos sobre o módulo http2, serviços gRPC e aplicativos que encerram o TLS por conta própria, sem um proxy na frente. Esses são os serviços mais expostos ao bug de fechamento de streams, então migre-os primeiro para a 22.23.3.

Atualize suas imagens base, não só seus notebooks. Muitas equipes fixam uma versão do Node em um Dockerfile, em uma configuração de CI ou em um arquivo .nvmrc. Procure 22. nesses arquivos e atualize cada um, depois faça o rebuild.

Se você mantém um add-on nativo, as novas funções da Node-API permitem compartilhar memória com worker threads sem copiá-la. Adicione uma verificação de versão, porque essas funções só existem em versões mais novas e builds antigos do Node 22 não as têm.

Se sua suíte de testes faz mock do módulo fs sob módulos ES e quebrou em uma versão 22.x anterior, rode-a de novo na 22.23.3. A volta do patching pode permitir que você remova uma gambiarra.

Por fim, fique de olho em um CVE. As notas de versão não citam nenhum, e o projeto pode publicar um alerta de segurança mais tarde. Até lá, trate isto como um patch que vale aplicar agora, em vez de esperar a próxima atualização programada.

Fontes

  1. Node.js 22.23.3 (LTS) - Node.js
  2. Node.js 22.23.3 LTS Released with HTTP/2 Use-After-Free Fix - LinuxCompatible

Artigos relacionados