Ember.js XSS Vulnerability with User-Supplied JSON


2017-06-16 19:16
2017-04-01 19:10
2017-01-05 20:15


By default, Ember will escape any values in Handlebars templates that
use double curlies (`{{value}}`). Developers can specifically opt out of
this escaping behavior by passing an instance of `SafeString` rather
than a raw string, which tells Ember that it should not escape the
string because the developer has taken responsibility for escapement.

It is possible for an attacker to create a specially-crafted payload
that causes a non-sanitized string to be treated as a `SafeString`, and
thus bypass Ember's normal escaping behavior. This could allow an
attacker to execute arbitrary JavaScript in the context of the current
domain ("XSS").

All users running an affected release should either upgrade or use of
the workarounds immediately.

Am I vulnerable?

The constraints below list the versions that this vulnerability is patched in, and versions that are unaffected. If a patch is ready but unrealeased, then it is pending.

Or, you can just let us figure it out for you! Appcanary continously monitor your installed packages, and tell you if any of them are vulnerable.

Sign up for monitoring

Affected package information

Package Patched in Unaffected in
ember-source ~> 1.11.4,~> 1.12.2,~> 1.13.12,~> 2.0.3,~> 2.1.2,>= 2.2.1 < 1.8.0