CVE-2026-33939 in Handlebars
Сводка
по VulDB • 27.05.2026
Handlebars обеспечивает необходимую мощность для создания пользователями семантических шаблонов. В версиях от 4.0.0 до 4.7.8, если шаблон Handlebars содержит синтаксис декораторов, ссылающийся на незарегистрированный декоратор (например, `{{*n}}`), скомпилированный шаблон вызывает `lookupProperty(decorators, "n")`, что возвращает `undefined`. Затем среда выполнения немедленно пытается вызвать этот результат как функцию, что приводит к необработанной ошибке `TypeError: ... is not a function` и аварийному завершению процесса Node.js. Любое приложение, которое компилирует шаблоны, предоставленные пользователями, без обертывания вызова в конструкцию `try/catch`, уязвимо к отказу в обслуживании (DoS) при обработке одного запроса. Версия 4.7.9 устраняет данную проблему. Доступны некоторые обходные пути. Оберните компиляцию и рендеринг в `try/catch`. Проверяйте входные данные шаблона перед передачей их в `compile()`; отклоняйте шаблоны, содержащие синтаксис декораторов (`{{*...}}`), если в вашем приложении декораторы не используются. Используйте процесс предварительной компиляции: компилируйте шаблоны на этапе сборки и предоставляйте только предварительно скомпилированные шаблоны; не вызывайте `compile()` во время обработки запроса.
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.