CVE-2026-33939 in Handlebars
Resumen
por VulDB • 2026-05-20
Handlebars proporciona la potencia necesaria para permitir a los usuarios construir plantillas semánticas. En las versiones 4.0.0 a 4.7.8, cuando una plantilla de Handlebars contiene sintaxis de decorador que hace referencia a un decorador no registrado (por ejemplo, `{{*n}}`), la plantilla compilada llama a `lookupProperty(decorators, "n")`, lo que devuelve `undefined`. El tiempo de ejecución invoca inmediatamente el resultado como una función, provocando un `TypeError: ... is not a function` no controlado que hace que el proceso de Node.js se bloquee. Cualquier aplicación que compile plantillas proporcionadas por el usuario sin envolver la llamada en un bloque `try/catch` es vulnerable a un Denegación de Servicio (DoS) mediante una única solicitud. La versión 4.7.9 corrige el problema. Existen algunas soluciones alternativas. Envuelva la compilación y la representación en un bloque `try/catch`. Valide la entrada de la plantilla antes de pasarla a `compile()`; rechace las plantillas que contengan sintaxis de decorador (`{{*...}}`) si los decoradores no se utilizan en su aplicación. Utilice el flujo de trabajo de precompilación; compile las plantillas en tiempo de construcción y sirva únicamente plantillas precompiladas; no llame a `compile()` en el momento de la solicitud.
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.