Miggo Logo

CVE-2013-4170: Ember.js Potential XSS Exploit When Binding `tagName` to User-Supplied Data

6.1

CVSS Score
3.1

Basic Information

EPSS Score
0.57817%
Published
7/1/2022
Updated
8/29/2023
KEV Status
No
Technology
TechnologyRuby

Technical Details

CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N
Package NameEcosystemVulnerable VersionsFirst Patched Version
ember-sourcerubygems<= 1.0.0.rc1.01.0.0.rc1.1
ember-sourcerubygems= 1.0.0.rc2.01.0.0.rc2.1
ember-sourcerubygems= 1.0.0.rc3.01.0.0.rc3.1
ember-sourcerubygems= 1.0.0.rc4.01.0.0.rc4.1
ember-sourcerubygems= 1.0.0.rc5.01.0.0.rc5.1
ember-sourcerubygems= 1.0.0.rc6.01.0.0.rc6.1

Vulnerability Intelligence
Miggo AIMiggo AI

Miggo AIRoot Cause Analysis

The vulnerability stems from unsanitized use of the tagName property when creating view elements. Ember's View class uses tagName to generate the element via string interpolation in createElement. Since tagName wasn't sanitized in vulnerable versions, user-supplied values could inject malicious attributes (e.g., onerror). The patches likely added sanitization to this specific element creation path. While exact pre-patch code isn't shown, the advisory's description of the attack vector (binding to tagName) and XSS via innerHTML context strongly implicates the element creation function as the vulnerable point.

Vulnerable functions

Only Mi**o us*rs **n s** t*is s**tion

WAF Protection Rules

WAF Rule

In **n*r*l, *m**r.js *s**p*s or strips *ny us*r-suppli** *ont*nt ***or* ins*rtin* it in strin*s t**t will ** s*nt to inn*r*TML. *ow*v*r, t** `t**N*m*` prop*rty o* *n `*m**r.Vi*w` w*s ins*rt** into su** * strin* wit*out **in* s*nitiz**. T*is m**ns t**

Reasoning

T** vuln*r**ility st*ms *rom uns*nitiz** us* o* t** `t**N*m*` prop*rty w**n *r**tin* vi*w *l*m*nts. *m**r's Vi*w *l*ss us*s `t**N*m*` to **n*r*t* t** *l*m*nt vi* strin* int*rpol*tion in `*r**t**l*m*nt`. Sin** `t**N*m*` w*sn't s*nitiz** in vuln*r**l*
CVE-2013-4170: Ember.js tagName Binding XSS | Miggo