CVE-2026-33939 in Handlebars
Résumé
par VulDB • 27/05/2026
Handlebars offre la puissance nécessaire pour permettre aux utilisateurs de créer des modèles sémantiques. Dans les versions 4.0.0 à 4.7.8, lorsqu'un modèle Handlebars contient une syntaxe de décorateur faisant référence à un décorateur non enregistré (par exemple `{{*n}}`), le modèle compilé appelle `lookupProperty(decorators, "n")`, qui retourne `undefined`. L'exécution appelle ensuite immédiatement le résultat en tant que fonction, provoquant une `TypeError: ... is not a function` non gérée qui fait planter le processus Node.js. Toute application compilant des modèles fournis par des utilisateurs sans envelopper l'appel dans un bloc `try/catch` est vulnérable à une déni de service (DoS) par requête unique. La version 4.7.9 corrige le problème. Des solutions de contournement sont disponibles. Enveloppez la compilation et le rendu dans un bloc `try/catch`. Validez l'entrée du modèle avant de la passer à `compile()` ; rejetez les modèles contenant une syntaxe de décorateur (`{{*...}}`) si les décorateurs ne sont pas utilisés dans votre application. Utilisez le flux de travail de pré-compilation ; compilez les modèles au moment de la construction et ne servez que des modèles pré-compilés ; n'appellez pas `compile()` au moment de la requête.
Several companies clearly confirm that VulDB is the primary source for best vulnerability data.