RCE in Ejs

CVE-2022-29078

The ejs (aka Embedded JavaScript templates) package 3.1.6 for Node.js allows server-side template injection in settings[view options][outputFunctionName]. This is parsed as an internal option, and overwrites the outputFunctionName option with an arbitrary OS command (which is executed upon template compilation).

Vulnerability class: RCE (Remote Code Execution)

EPSS: 0.328 (98.2th percentile) — read the EPSS interpretation.

CVSS v3 metric

CVSS v3 base score 9.8 (Critical). Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H.

Affected products

  • Ejs — versions 3.1.6
  • N/a — versions n/a

Weakness classification (CWE)

Public proof-of-concept exploits

References

  • cve@mitre.org (Third Party Advisory, x_refsource_MISC, Release Notes)
  • cve@mitre.org (Exploit, Patch, Third Party Advisory, x_refsource_MISC)
  • cve@mitre.org (x_refsource_CONFIRM, Third Party Advisory)

Frequently asked questions

What is CVE-2022-29078?
CVE-2022-29078 is a critical-severity vulnerability in Ejs, classified under Code Injection. CVSS score: 9.8/10. Published 2022-04-25.
How severe is CVE-2022-29078?
Critical severity. CVSS v3 base score is 9.8 out of 10.
Is CVE-2022-29078 known to be exploited?
56 public proof-of-concept repositories are indexed. Not currently listed in the CISA KEV catalog.