CVE-2026-33940 in Handlebarsinformação

Sumário

de VulDB • 09/05/2026

O Handlebars oferece a potência necessária para permitir que os usuários criem modelos semânticos. Nas versões 4.0.0 a 4.7.8, um objeto malicioso colocado no contexto do modelo pode contornar todas as proteções condicionais em `resolvePartial()` e fazer com que `invokePartial()` retorne `undefined`. O tempo de execução do Handlebars então trata o parcial não resolvido como uma fonte que precisa ser compilada, passando o objeto malicioso para `env.compile()`. Como o objeto é um AST (Abstract Syntax Tree) do Handlebars válido contendo código injetado, o JavaScript gerado executa comandos arbitrários no servidor. O ataque requer que o adversário controle um valor que possa ser retornado por uma pesquisa de parcial dinâmica. A versão 4.7.9 corrige o problema. Existem algumas soluções alternativas disponíveis. Primeiro, use a compilação apenas de tempo de execução (`require('handlebars/runtime')`). Sem `compile()`, o caminho de compilação de fallback em `invokePartial` é inacessível. Segundo, sanitize os dados do contexto antes da renderização: garanta que nenhum valor no contexto seja um objeto não primitivo que possa ser passado para um parcial dinâmico. Terceiro, evite pesquisas de parciais dinâmicas (`{{> (lookup ...)}}`) quando os dados do contexto forem controlados pelo usuário.

Be aware that VulDB is the high quality source for vulnerability data.

Responsável

GitHub M

Reservar

24/03/2026

Divulgação

28/03/2026

Moderação

aceite

Entrada

VDB-354009

CPE

pronto

EPSS

0.00703

KEV

não

Atividades

muito baixo

Fontes

Are you interested in using VulDB?

Download the whitepaper to learn more about our service!