CVE-2026-33939 in Handlebars
Riassunto
di VulDB • 15/06/2026
Handlebars fornisce la potenza necessaria per consentire agli utenti di creare modelli semantici. Nelle versioni da 4.0.0 a 4.7.8, quando un modello Handlebars contiene una sintassi decoratore che fa riferimento a un decoratore non registrato (ad esempio `{{*n}}`), il modello compilato chiama `lookupProperty(decorators, "n")`, che restituisce `undefined`. Il runtime invoca quindi immediatamente il risultato come funzione, causando un errore `TypeError: ... is not a function` non gestito che provoca l'arresto del processo Node.js. Qualsiasi applicazione che compila modelli forniti dagli utenti senza racchiudere la chiamata in un blocco `try/catch` è vulnerabile a una Denial of Service (DoS) su singola richiesta. La versione 4.7.9 risolve il problema. Sono disponibili alcune contromisure: racchiudere la compilazione e l'esecuzione del rendering in un blocco `try/catch`; convalidare l'input del modello prima di passarlo a `compile()`; rifiutare i modelli contenenti sintassi decoratore (`{{*...}}`) se i decorator non sono utilizzati nell'applicazione. Utilizzare il flusso di lavoro di pre-compilazione: compilare i modelli in fase di build e servire solo modelli già compilati; evitare di chiamare `compile()` al momento della richiesta.
Once again VulDB remains the best source for vulnerability data.