GitHub Advisoryadvisory · npm

GHSA-2cf5-4w76-r9qv Arbitrary Code Execution in handlebars

HIGH Published 2020-09-04 Modified 2024-01-29 Official page ↗
Ecosystem
npm
Packages
handlebars
Severity
High
CVSS vector
CVSS:3.1/AV:L/AC:L/PR:L/UI:R/S:C/C:L/I:H/A:L
Weaknesses
CWE-94
Reviewed
2020-08-31

Affected packages

• npm handlebars: < 3.0.8 → fixed in 3.0.8 • npm handlebars: >= 4.0.0, < 4.5.2 → fixed in 4.5.2

Description

Versions of `handlebars` prior to 3.0.8 or 4.5.2 are vulnerable to Arbitrary Code Execution. The package's lookup helper fails to properly validate templates, allowing attackers to submit templates that execute arbitrary JavaScript in the system. It can be used to run arbitrary code in a server processing Handlebars templates or on a victim's browser (effectively serving as Cross-Site Scripting). The following template can be used to demonstrate the vulnerability: ```{{#with "constructor"}} {{#with split as |a|}} {{pop (push "alert('Vulnerable Handlebars JS');")}} {{#with (concat (lookup join (slice 0 1)))}} {{#each (slice 2 3)}} {{#with (apply 0 a)}} {{.}} {{/with}} {{/each}} {{/with}} {{/with}} {{/with}}``` Recommendation Upgrade to version 3.0.8, 4.5.2 or later.

Related

Weakness · CWE (1)

  • CWE-94 Improper Control of Generation of Code weakness

References