CVE-2026-106446: Handlebars.js: injeção de JavaScript por bypass de validação de AST em compile
O registro descreve uma falha em Handlebars.compile() e Handlebars.precompile(), que aceitam objetos AST pré-analisados e validam apenas alguns valores, permitindo que expressões JavaScript cheguem ao código gerado (CWE-94). O intervalo afetado vai de 4.0.0 até antes de 4.7.10, e o registro indica correção na 4.7.10. Não há exploração confirmada nas fontes consultadas, e a CVE não consta no catálogo KEV da CISA.
Visão geral
O registro descreve o Handlebars como uma ferramenta para criar templates semânticos. O problema afeta Handlebars.compile() e Handlebars.precompile() quando recebem objetos AST pré-analisados em vez de strings de template. Segundo o registro, essas funções validam apenas valores selecionados dos nós, e a falha contorna a validação de AST adicionada na 4.7.9 para o CVE-2026-33937. O aviso está registrado como GHSA-8r5x-fm3f-whwj.
Impacto
A fraqueza é classificada como CWE-94 (Injeção de Código). O registro indica que valores não verificados podem ser emitidos no JavaScript gerado, o que pode causar execução de código no processo do servidor quando a saída de compile é renderizada ou quando a saída de precompile é carregada. A pontuação CVSS do registro é crítica (9.8), com vetor de rede, sem necessidade de privilégios, sem interação do usuário e alto impacto em confidencialidade, integridade e disponibilidade.
Produtos e versões afetadas
- Produto: Handlebars-lang Handlebars.js
- Intervalo no registro: de 4.0.0 até antes de 4.7.10
- Segundo o registro, aplicações que passam apenas strings de template não são afetadas.
- O campo de correções do registro está vazio, mas a descrição indica que o problema é corrigido na 4.7.10.
Status de exploração
A CVE não consta no catálogo KEV da CISA no registro, portanto não é possível afirmar exploração ativa confirmada por essa fonte. Não há exploração confirmada nas fontes consultadas. O campo SSVC do registro classifica a exploração como poc, indicando nível de prova de conceito e não exploração confirmada na natureza. A probabilidade EPSS no registro é 0.0064, com percentil 0.50067, datada de 2026-10-23.
Correção e mitigação
- Atualize o Handlebars.js para a 4.7.10, identificada no registro como versão corrigida. Consulte as notas da versão.
- Até a atualização, não repasse objetos AST nem outras entradas não textuais de fontes não confiáveis para compile ou precompile. Aceite apenas strings de template vindas de usuários.
- Carregue templates pré-compilados apenas de fontes confiáveis e com verificação de integridade, pois o registro indica que a saída de precompile pode disparar o problema ao ser carregada.
- Mantenha um inventário das dependências do Handlebars, incluindo as transitivas, para identificar versões afetadas.
Orientações de detecção
- Pesquise no código chamadas a compile ou precompile que recebam valores diferentes de strings simples, especialmente os construídos a partir de dados controlados pelo usuário.
- Revise pipelines que carregam artefatos de templates pré-compilados e confirme a origem deles.
- Monitore processos do servidor para detectar processos filhos inesperados ou comportamento incomum após a renderização de templates, como sinal defensivo de possível execução de código.
Limitações das informações disponíveis
O registro não traz uma lista de versões corrigidas no campo de correções, então a versão corrigida foi obtida da descrição. O commit e o pull request citados no registro não foram analisados em detalhe aqui. O registro não contém detalhes técnicos adicionais sobre exploração e está com o status Awaiting Analysis. A exposição de cada implantação depende de passar entradas não textuais a essas funções, o que o registro não avalia.
Perguntas frequentes
Quais versões do Handlebars.js são afetadas?
O registro indica o intervalo afetado de 4.0.0 até antes de 4.7.10, e afirma que o problema é corrigido na 4.7.10.
Minha aplicação precisa mudar se usar apenas strings de template?
Segundo o registro, aplicações que passam apenas strings de template para essas funções não são afetadas por esta falha.
Esta CVE é explorada na natureza?
O registro não a lista no KEV da CISA e nenhuma exploração confirmada aparece nas fontes consultadas.
Esta análise foi redigida com auxílio de IA a partir de dados verificados das fontes e checada automaticamente contra eles.