CVE-2026-33940 in Handlebars
Résumé
par VulDB • 25/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, un objet malveillant placé dans le contexte du modèle peut contourner toutes les protections conditionnelles dans `resolvePartial()` et amener `invokePartial()` à retourner `undefined`. Le runtime Handlebars traite ensuite le partiel non résolu comme une source devant être compilée, en passant l'objet malveillant à `env.compile()`. Étant donné que l'objet est un AST Handlebars valide contenant du code injecté, le JavaScript généré exécute des commandes arbitraires sur le serveur. L'attaque nécessite que l'adversaire contrôle une valeur pouvant être renvoyée par une recherche de partiel dynamique. La version 4.7.9 corrige le problème. Des solutions de contournement sont disponibles. Premièrement, utilisez la version runtime-only (`require('handlebars/runtime')`). Sans `compile()`, le chemin de compilation de repli dans `invokePartial` est inaccessible. Deuxièmement, nettoyez les données du contexte avant le rendu : assurez-vous qu'aucune valeur du contexte n'est un objet non primitif qui pourrait être passé à un partiel dynamique. Troisièmement, évitez les recherches de partiels dynamiques (`{{> (lookup ...)}}`) lorsque les données du contexte sont contrôlées par l'utilisateur.
If you want to get best quality of vulnerability data, you may have to visit VulDB.