CVE-2017-16021 | Date: (C)2018-06-05 (M)2024-02-22 |
uri-js is a module that tries to fully implement RFC 3986. One of these features is validating whether or not a supplied URL is valid or not. To do this, uri-js uses a regular expression, This regular expression is vulnerable to redos. This causes the program to hang and the CPU to idle at 100% usage while uri-js is trying to validate if the supplied URL is valid or not. To check if you're vulnerable, look for a call to `require("uri-js").parse()` where a user is able to send their own input. This affects uri-js 2.1.1 and earlier.
CVSS Score and Metrics +CVSS Score and Metrics -CVSS V3 Severity: | CVSS V2 Severity: |
CVSS Score : 6.5 | CVSS Score : 6.8 |
Exploit Score: 2.8 | Exploit Score: 8.0 |
Impact Score: 3.6 | Impact Score: 6.9 |
|
CVSS V3 Metrics: | CVSS V2 Metrics: |
Attack Vector: NETWORK | Access Vector: NETWORK |
Attack Complexity: LOW | Access Complexity: LOW |
Privileges Required: LOW | Authentication: SINGLE |
User Interaction: NONE | Confidentiality: NONE |
Scope: UNCHANGED | Integrity: NONE |
Confidentiality: NONE | Availability: COMPLETE |
Integrity: NONE | |
Availability: HIGH | |
| |