{"id":"CVE-2017-16021","aliases":["EUVD-2018-0211","GHSA-333w-rxj3-f55r"],"status":"published","title":"Regular Expression Denial Of Service in uri-js","description":"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.","severity":{"version":"3.1","score":6.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H","level":"medium","assessor":"primary","from":"nvd"},"epss":{"day":"2026-11-08","score":0.01321,"percentile":0.71076,"model":"v2026.06.15"},"facts":{"in_kev":false,"known_exploited":false,"public_exploit":false,"fix_available":true},"cwes":["CWE-1333","CWE-400"],"published":"2018-06-04T19:00:00Z","modified":"2026-06-17T01:08:39Z","fixes":[{"ecosystem":"npm","package":"uri-js","fixed_in":["3.0.0"],"sources":["ghsa","osv"]}],"affected":[{"source":"ghsa","ecosystem":"npm","package":"uri-js","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"3.0.0"}]}]},{"source":"osv","ecosystem":"npm","package":"uri-js","ranges":[{"type":"SEMVER","events":[{"introduced":"0"},{"fixed":"3.0.0"}]}]}],"products":[{"vendor":"garycourt","product":"uri-js"},{"vendor":"hackerone","product":"uri-js node module"}],"references":[{"url":"https://github.com/garycourt/uri-js/issues/12","tags":["x_refsource_MISC","x_transferred","Exploit","Issue Tracking","Third Party Advisory","web"]},{"url":"https://nodesecurity.io/advisories/100","tags":["x_refsource_MISC","x_transferred","Broken Link","Third Party Advisory","web"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2017-16021","tags":["advisory"]},{"url":"https://github.com/advisories/GHSA-333w-rxj3-f55r","tags":["advisory"]},{"url":"https://www.npmjs.com/advisories/100","tags":["web"]}],"sources":{"cve":[{"id":"CVE-2017-16021","description":"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.","status":"published","published":"2018-06-04T19:00:00Z","modified":"2024-09-17T01:46:00.192Z","cwes":["CWE-400"],"updated_at":"2026-11-02T14:33:21.453505Z"}],"euvd":[{"id":"EUVD-2018-0211","description":"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.","status":"published","published":"2018-06-04T19:00:00Z","modified":"2024-09-17T01:46:00Z","updated_at":"2026-11-03T00:28:47.09844Z"}],"ghsa":[{"id":"GHSA-333w-rxj3-f55r","title":"Regular Expression Denial Of Service in uri-js","description":"Affected versions of `uri-js` is susceptible to a regular expression denial of service vulnerability when user input is sent to the `.parse()` method.\n\n\n\n## Recommendation\n\nUpdate to v3.0.0 or later.","status":"published","published":"2018-07-24T20:00:30Z","modified":"2024-04-22T19:38:17Z","cvss":[{"version":"3.1","score":6.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H","level":"medium"}],"cwes":["CWE-400","CWE-1333"],"updated_at":"2026-11-02T14:37:44.335614Z"}],"nvd":[{"id":"CVE-2017-16021","description":"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.","status":"published","published":"2018-06-04T19:29:01.303Z","modified":"2026-06-17T01:08:39.33Z","cvss":[{"version":"3.1","score":6.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H","level":"medium","assessor":"primary"},{"version":"2.0","score":6.8,"vector":"AV:N/AC:L/Au:S/C:N/I:N/A:C","level":"medium","assessor":"primary"}],"cwes":["CWE-400","CWE-1333"],"updated_at":"2026-11-02T14:04:17.638656Z"}],"osv":[{"id":"GHSA-333w-rxj3-f55r","title":"Regular Expression Denial Of Service in uri-js","description":"Affected versions of `uri-js` is susceptible to a regular expression denial of service vulnerability when user input is sent to the `.parse()` method.\n\n\n\n## Recommendation\n\nUpdate to v3.0.0 or later.","status":"published","published":"2018-07-24T20:00:30Z","modified":"2024-04-22T19:37:18Z","cvss":[{"version":"3.1","score":6.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H","level":"medium"}],"cwes":["CWE-1333","CWE-400"],"updated_at":"2026-11-02T15:46:35.050232Z"}]}}
