CVE-2026-33916 in Handlebars
Sumário
de VulDB • 29/06/2026
O Handlebars oferece a potência necessária para permitir que os usuários criem modelos semânticos. Nas versões de 4.0.0 até 4.7.8, `resolvePartial()` no tempo de execução do Handlebars resolve nomes parciais por meio de uma consulta direta à propriedade em `options.partials`, sem proteção contra travessia da cadeia de protótipos (prototype-chain traversal). Quando o `Object.prototype` está poluído com um valor string cuja chave corresponde a uma referência parcial em um modelo, essa string poluída é usada como corpo do parcial e renderizada sem escape HTML, resultando em XSS refletido ou armazenado. A versão 4.7.9 corrige o problema. Existem algumas soluções alternativas disponíveis. Aplique `Object.freeze(Object.prototype)` no início da inicialização da aplicação para prevenir a poluição de protótipos (prototype pollution). Nota: isso pode quebrar outras bibliotecas e/ou usar apenas a compilação do tempo de execução do Handlebars (`handlebars/runtime`), que não compila modelos e reduz a superfície de ataque.
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.