Quoteless Attributes in Templates can lead to Content Injection

2015-12-14T17:13:57
ID NODEJS:62
Type nodejs
Reporter Matias P. Brutti
Modified 2018-05-08T14:27:01

Description

Overview

Versions of mustache prior to 2.2.1 are affected by a cross-site scripting vulnerability when attributes in mustache templates are not quoted.

Example

Template: <a href={{foo}}/>

Input: { 'foo' : 'test.com onload=alert(1)'}

Rendered result: <a href=test.com onload=alert(1)/>

Recommendation

Update to version 2.2.1 or later. Alternatively, ensure that all attributes in hmustache templates are encapsulated with quotes.

References

Commit #378bcca