CVE-2026-33940 — Handlebars.js has JavaScript Injection via AST Type Confusion when passing an object as dynamic partial
Handlebars provides the power necessary to let users build semantic templates. In versions 4.0.0 through 4.7.8, a crafted object placed in the template context can bypass all conditional guards in `resolvePartial()` and cause `invokePartial()` to return `undefined`. The Handlebars runtime then treats the unresolved partial as a source that needs to be compiled, passing the crafted object to `env.compile()`. Because the object is a valid Handlebars AST containing injected code, the generated JavaScript executes arbitrary commands on the server. The attack requires the adversary to control a value that can be returned by a dynamic partial lookup. Version 4.7.9 fixes the issue. Some workarounds are available. First, use the runtime-only build (`require('handlebars/runtime')`). Without `compile()`, the fallback compilation path in `invokePartial` is unreachable. Second, sanitize context data before rendering: Ensure no value in the context is a non-primitive object that could be passed to a dynamic partial. Third, avoid dynamic partial lookups (`{{> (lookup ...)}}`) when context data is user-controlled.
Descrição oficial em inglês (tradução ainda não revisada).
Quem explora e qual a prioridade
Nota de 0 a 100 que combina exploração confirmada, uso por ransomware e grupos APT, exploits públicos, EPSS e severidade.
Como a nota foi calculada
- EPSS 0.8% (probabilidade de exploração em 30 dias)+8
- Severidade técnica (high)+6
- CISA SSVC: exploração "poc"+5
A nota ordena a fila de correção; não substitui o contexto dos seus ativos (exposição à internet, criticidade, compensações).
Triagem
Está sendo explorada, qual a probabilidade de exploração, o que afeta e qual a severidade segundo as fontes.
Avaliação SSVC da CISA CISA
Três pontos de decisão que a CISA publica para as CVEs que avalia (SSVC 2.0.3). Uma decisão de priorização, não uma nota de severidade.
Remediação
Correções e mitigações documentadas pelas fontes — com link para o aviso original.
- Patch documentado — github.com (NIST National Vulnerability Database)
Primeiras 24 horas
Ordenado a partir dos próprios campos do registro — exposição primeiro, porque não se corrige o que não se encontrou. Ponto de partida, gerado por regras.
- Identifique ativos expostos que executam as combinações de fabricante/produto/versão afetadas (Handlebars-lang Handlebars.js, Handlebarsjs Handlebars).
- O ataque é pela rede e não exige privilégios: restrinja a exposição (ACLs, VPN, WAF) até corrigir.
- Aplique a versão corrigida ou o patch documentado na seção Remediação.
- Procure nos logs disponíveis sinais de tentativa de exploração compatíveis com a classe da falha (injeção), erros e anomalias de autenticação.
Escopo afetado
Fabricante, produto e versões como as fontes os descrevem.
| Fabricante | Produto | Versões | Status | Fonte |
|---|---|---|---|---|
| Handlebars-lang | Handlebars.js | versão >= 4.0.0, < 4.7.9 | Vulnerável | CVE Program (cve.org) e CISA ADP |
| Handlebarsjs | Handlebars | ≥ 4.0.0 e < 4.7.9 | Vulnerável | NIST National Vulnerability Database |
Características do ataque
O vetor CVSS decodificado. Descreve o ataque, não a sua exposição a ele.
Todas as pontuações coletadas
As fontes pontuam de forma independente e podem discordar; cada linha diz quem pontuou e em qual versão.
| Nota | Versão | Severidade | Explor. | Impacto | Pontuado por |
|---|---|---|---|---|---|
| 8.1 | CVSS 3.1 | Alta | 2.2 | 5.9 | security-advisories@github.com via NIST National Vulnerability Database |
| 8.1 | CVSS 3.1 | Alta | 2.2 | 5.9 | 0b0ca135-0b70-47e7-9f44-1890c2a1c46c via NIST National Vulnerability Database |
| 8.1 | CVSS 3.1 | Alta | — | — | GitHub_M via CVE Program (cve.org) e CISA ADP |
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H (nota exibida no topo: security-advisories@github.com) Fraqueza MITRE
Classe de fraqueza segundo o catálogo CWE do MITRE.
EPSS ao longo do tempo FIRST
13/10/2026 → 14/10/2026 · 2 leitura(s) · máximo 0.79%
Detecção
Derivado do vetor CVSS e da classe da fraqueza. Pontos de partida, não regras testadas.
- Priorize telemetria de borda para o componente exposto na rede (proxy, WAF, IDS/IPS).
- Procure parâmetros com metacaracteres de comando/consulta e processos filhos inesperados do serviço.
Linha do tempo
O que aconteceu com esta CVE, do mais recente ao mais antigo.
- 2026
- Produtos afetados adicionados · handlebars-lang/handlebars.js
- Avaliação SSVC atualizada
- Ficha publicada
- Correção documentada
- CVSS alterado · 8.1
- Status na fonte alterado · → Modified
- Registro criado nesta base
- CVE publicada
Atividade das fontes
Leituras que se repetem foram contadas em vez de listadas.
- 1× Descrição oficial atualizada · 13/10/2026 – 13/10/2026
Referências
8 no registro
- github.com/handlebars-lang/handlebars.js/security/advisories/GHSA-xhpv-hc6g-r9c6
- github.com/handlebars-lang/handlebars.js/commit/68d8df5a88e0a26fe9e6084c5c6aaebe
- access.redhat.com/security/cve/CVE-2026-33940
- github.com/handlebars-lang/handlebars.js/releases/tag/v4.7.9
- access.redhat.com/errata/RHSA-2026:34342
- bugzilla.redhat.com/show_bug.cgi
- security.access.redhat.com/data/csaf/v2/vex/2026/cve-2026-33940.json
- access.redhat.com/errata/RHSA-2026:10175
Em outras páginas do site
CVEs relacionadas (mesmos produtos)
- Crítica CVE-2026-106446 Handlebars: JavaScript Injection via AST Type Confusion in compile (Program.blockParams) 9 d
- Média CVE-2026-106444 Handlebars: JavaScript Injection via Unsafe Inline Embedding of Precompiled Templates 9 d
- Crítica CVE-2026-106445 Handlebars: JavaScript Injection via Own Property Check Bypass 9 d
- Alta CVE-2026-33941 Handlebars.js has JavaScript Injection in CLI Precompiler via Unescaped Names and Options 27/03/2026
- Alta CVE-2026-33939 Handlebars.js has Denial of Service via Malformed Decorator Syntax in Template Compilation 27/03/2026
- Média CVE-2026-33916 Handlebars.js has Prototype Pollution Leading to XSS through Partial Template Injection 27/03/2026
Não consta em nenhuma fonte consultada
Listado em vez de deixado em branco: um campo vazio e um não medido parecem iguais na tela, e só um deles é motivo para procurar em outro lugar.
- Nenhum IOC confirmado (IPs, domínios, hashes ou artefatos de malware) fornecido.
- Nenhum inventário de ativos, controle compensatório ou evidência de implantação de patch da sua organização.
- Nenhuma captura de tráfego de exploração, amostra de log ou caso de incidente.
Respondido a partir deste registro
Texto montado apenas com os campos acima — sem afirmações adicionais.
O que os defensores devem saber primeiro?
CVE-2026-33940 é "Handlebars.js has JavaScript Injection via AST Type Confusion when passing an object as dynamic partial", de severidade Alta. Afeta Handlebars.js (Handlebars-lang); as versões estão na tabela de escopo. Não está na CISA KEV, o que não exclui exploração. CVSS 8.1 descreve a severidade técnica. EPSS 0.79% estima a probabilidade de exploração em 30 dias; nenhum dos dois substitui o contexto dos seus ativos. Verifique primeiro se ativos expostos ou críticos executam as versões afetadas, aplique as correções ou mitigações do fabricante e preserve logs para análise.
Comentários
Discussão técnica moderada. Leia as regras da comunidade.
Nenhum comentário ainda.
Entre ou crie uma conta para comentar e sugerir correções.