VDB
Sign up
HIGH7.3

GHSA-2cf5-4w76-r9qv

Arbitrary Code Execution in handlebars

Quick fix

GHSA-2cf5-4w76-r9qv — handlebars: upgrade to the fixed version with the command below.

npm install handlebars@3.0.8

Details

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.

Are you affected?

Enter the version of the package you're using.

Affected packages

npm/handlebars
Introduced in: 0Fixed in: 3.0.8
Fixnpm install handlebars@3.0.8
npm/handlebars
Introduced in: 4.0.0Fixed in: 4.5.2
Fixnpm install handlebars@4.5.2

References