Node.js 26.12.1, 24.22.1 e 22.23.4 corrigem 10 falhas de segurança
O Node.js corrigiu dez vulnerabilidades em 21 de outubro de 2026, quatro de gravidade alta, entre elas um bug no decodificador Brotli que pode permitir execução remota de código.
3 min de leitura

Em números
- vulnerabilities fixed across three release lines
- 10
- rated high severity
- 4
- bundled dependencies updated, eMudhra block included
- 5
O projeto Node.js lançou atualizações de segurança para suas três linhas com suporte em 21 de outubro de 2026 e corrigiu dez vulnerabilidades. Quatro têm gravidade alta. Uma delas está no decodificador Brotli e, segundo o projeto, pode permitir execução remota de código. Quem usa Node.js 26, 24 ou 22 deve migrar para 26.12.1, 24.22.1 ou 22.23.4.
As versões corrigidas e o que elas cobrem
O Node.js é o ambiente de execução de JavaScript por trás da maior parte do JavaScript no servidor, de APIs web a ferramentas de build. A nota de segurança do Node.js lista as correções por gravidade: quatro altas, três médias e três baixas. Cada linha tem uma versão corrigida.
| Linha | Versão corrigida | Status |
|---|---|---|
| 26.x | 26.12.1 | Current |
| 24.x | 24.22.1 | LTS |
| 22.x | 22.23.4 | LTS |
LTS significa suporte de longo prazo: uma linha que recebe correções por anos. Segundo o site japonês Jinrai, que verificou como os fornecedores reagiram, a 24.x tem suporte até 30 de abril de 2028 e a 22.x até 30 de abril de 2027. O Node.js 26 deve virar LTS em 28 de outubro de 2026.
As mesmas versões atualizam cinco bibliotecas embutidas: c-ares (consultas DNS), Undici (o cliente HTTP por trás do fetch), OpenSSL, SQLite e a lista de certificados embutida. Essa última mudança bloqueia certificados da eMudhra, a autoridade certificadora cujas chaves foram expostas nesta semana. O Tech AI Wire cobriu o incidente em Chaves de CA da eMudhra comprometidas: Go, Firefox e NSS lançam correções.
Os quatro bugs de gravidade alta
| CVE | O que dá errado | Linhas afetadas |
|---|---|---|
| CVE-2026-111497 | O decodificador Brotli escreve fora dos limites e permite execução remota de código | 26, 24, 22 |
| CVE-2026-106069 | A checagem de nome de host TLS passa quando um host é resolvido de forma frouxa para um IP | 26, 24, 22 |
| CVE-2026-105483 | A checagem de nome de host TLS passa quando um IP é escrito com dígitos de largura total | 26, 24 |
| CVE-2026-105482 | dns.resolve corta nomes que contêm um caractere NUL | 26, 24, 22 |
Brotli é um formato de compressão que servidores web e navegadores usam para reduzir respostas. Uma escrita fora dos limites significa que o decodificador grava dados além da memória que recebeu. O Jinrai observa que a nota oficial ainda não descreve as condições de que um atacante precisaria.
Os dois bugs de TLS estão na checagem de que o certificado de um servidor corresponde ao endereço pedido. Se um endereço for escrito de forma incomum, a checagem pode aceitar o certificado errado. O Jinrai cita o registro da correção, segundo o qual a exploração "não é fácil". Nenhum ataque havia sido relatado no início de 22 de outubro, no horário do Japão.
Os bugs médios e baixos que merecem atenção
Um bug médio afeta apps criados como executáveis únicos (SEAs) ou a partir de snapshots de inicialização. Os dois embutem uma cópia preparada do programa em um único arquivo. Segundo o Node.js, os caches de números aleatórios de crypto.randomUUID() e randomInt() eram salvos nessa cópia. Por isso, todo processo repetia os mesmos valores.
Outro bug médio faz uma conexão keep-alive aceitar uma resposta escrita antes de a requisição ser enviada. Dois bugs de gravidade baixa atingem o Permission Model, a sandbox opcional que limita quais arquivos um script pode tocar.
O que isso significa para desenvolvedores
A atualização é rotineira, mas a origem do seu Node.js define a rapidez com que ela chega.
- Confira todo ambiente, não só o seu notebook. Rode
node --versionem produção, na CI e nos contêineres. O Jinrai encontrou as imagens oficiais do Docker já marcadas com as versões corrigidas, enquanto o Homebrew ainda oferecia a 26.12.0 horas depois. - Recompile apps de arquivo único. Se você distribui uma SEA ou usa um snapshot de inicialização, recompile com um Node.js corrigido. Um runtime consertado não corrige valores aleatórios já embutidos em um binário antigo.
- Saia do Node.js 20 e 25. Segundo o Node.js, linhas em fim de vida são sempre afetadas, e o Jinrai confirma que nenhuma das duas recebe correção. A versão 20 perdeu o suporte em 30 de abril de 2026.
- Priorize serviços que descompactam dados de clientes. Uma API pública que aceita corpos de requisição comprimidos com Brotli é o alvo mais claro da CVE-2026-111497.
O bloqueio da eMudhra chega com a atualização, como aponta o heise online. O Node.js agora traz uma lista de certificados intermediários bloqueados. Assim, ele pode rejeitar uma cadeia mesmo quando a raiz ainda é confiável. A correção de segurança anterior do Node.js, em setembro, foi menor: Node.js 22.23.3 LTS corrige um bug use-after-free no HTTP/2.
Fontes
Artigos relacionados

Tools This Week: 16 de outubro de 2026 - Bun 1.4.3, Figma Specs
Dez ferramentas para desenvolvedores nesta semana, lideradas pelo verificador de TypeScript do Bun 1.4.3 e pelo Figma Specs, além do Rust 1.99.1, das verificações de licença do GitHub e do DeepSeek V4.1-Flash-1017.

Alarme de malware no Zod 4.6.6: o commit malicioso nunca chegou ao npm
O Zod 4.6.6 saiu em 11 de outubro com commits maliciosos de 21 de setembro no histórico. Eles foram revertidos no mesmo dia, e nenhum chegou ao npm.

MALFEX: malware no npm passou 14 meses sem ser detectado
MALFEX, uma campanha de malware no npm feita por uma só pessoa, publicou 12 pacotes desde 2023 e somou 40.767 downloads. Alguns pacotes continuam no ar, sem aviso de segurança.