{"id":"CVE-2017-16116","aliases":["EUVD-2018-0267","GHSA-g36h-6r4f-3mqp"],"status":"published","title":"Regular Expression Denial of Service in string package","description":"The string module is a module that provides extra string operations. The string module is vulnerable to regular expression denial of service when specifically crafted untrusted user input is passed into the underscore or unescapeHTML methods.","severity":{"version":"3.1","score":7.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H","level":"high","assessor":"primary","from":"nvd"},"epss":{"day":"2026-11-08","score":0.01634,"percentile":0.76444,"model":"v2026.06.15"},"facts":{"in_kev":false,"known_exploited":false,"public_exploit":false,"fix_available":false},"cwes":["CWE-400"],"published":"2018-06-07T02:00:00Z","modified":"2026-10-20T10:48:16Z","affected":[{"source":"ghsa","ecosystem":"npm","package":"string","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"last_affected":"3.3.3"}]}]},{"source":"osv","ecosystem":"npm","package":"string","ranges":[{"type":"SEMVER","events":[{"introduced":"0"},{"last_affected":"3.3.3"}]}]}],"products":[{"vendor":"hackerone","product":"string node module"},{"vendor":"string_project","product":"string"}],"references":[{"url":"https://github.com/jprichardson/string.js/issues/212","tags":["x_refsource_MISC","x_transferred","Exploit","Third Party Advisory","evidence","web"]},{"url":"https://nodesecurity.io/advisories/536","tags":["x_refsource_MISC","x_transferred","Patch","Third Party Advisory","fix"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2017-16116","tags":["advisory"]},{"url":"https://github.com/advisories/GHSA-g36h-6r4f-3mqp","tags":["advisory"]},{"url":"https://www.npmjs.com/advisories/536","tags":["web"]}],"sources":{"cve":[{"id":"CVE-2017-16116","description":"The string module is a module that provides extra string operations. The string module is vulnerable to regular expression denial of service when specifically crafted untrusted user input is passed into the underscore or unescapeHTML methods.","status":"published","published":"2018-06-07T02:00:00Z","modified":"2024-09-16T19:35:06.187Z","cwes":["CWE-400"],"updated_at":"2026-11-02T14:33:21.453505Z"}],"euvd":[{"id":"EUVD-2018-0267","description":"The string module is a module that provides extra string operations. The string module is vulnerable to regular expression denial of service when specifically crafted untrusted user input is passed into the underscore or unescapeHTML methods.","status":"published","published":"2018-06-07T02:00:00Z","modified":"2024-09-16T19:35:06Z","updated_at":"2026-11-03T00:55:21.946733Z"}],"ghsa":[{"id":"GHSA-g36h-6r4f-3mqp","title":"Regular Expression Denial of Service in string package","description":"Affected versions of `string` are vulnerable to regular expression denial of service when specifically crafted untrusted user input is passed into the `underscore` or `unescapeHTML` methods.\n\n\n## Recommendation\n\nThere is currently no direct patch for this vulnerability. \n\nCurrently, the best solution is to avoid passing user input to the `underscore` and `unescapeHTML` methods.\n\nAlternatively, a user provided patch is available in [Pull Request #217]( https://github.com/jprichardson/string.js/pull/217/commits/eab9511e4efbc8c521e18b6cf2e8565ae50c5a16), however this patch has not been tested, nor has it been merged by the package author.","status":"published","published":"2018-07-24T20:16:11Z","modified":"2023-09-12T20:48:12Z","cvss":[{"version":"3.1","score":7.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H","level":"high"}],"cwes":["CWE-400"],"updated_at":"2026-11-02T14:37:05.004935Z"}],"nvd":[{"id":"CVE-2017-16116","description":"The string module is a module that provides extra string operations. The string module is vulnerable to regular expression denial of service when specifically crafted untrusted user input is passed into the underscore or unescapeHTML methods.","status":"published","published":"2018-06-07T02:29:02.863Z","modified":"2026-06-17T01:08:49.487Z","cvss":[{"version":"3.1","score":7.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H","level":"high","assessor":"primary"},{"version":"2.0","score":5,"vector":"AV:N/AC:L/Au:N/C:N/I:N/A:P","level":"medium","assessor":"primary"}],"cwes":["CWE-400"],"updated_at":"2026-11-02T14:04:17.638656Z"}],"osv":[{"id":"CVE-2017-16116","description":"The string module is a module that provides extra string operations. The string module is vulnerable to regular expression denial of service when specifically crafted untrusted user input is passed into the underscore or unescapeHTML methods.","status":"published","published":"2018-06-07T02:29:02.863Z","modified":"2026-10-20T10:48:16.297111639Z","cvss":[{"version":"3.1","score":7.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H","level":"high"}],"updated_at":"2026-11-02T15:44:04.853379Z"},{"id":"GHSA-g36h-6r4f-3mqp","title":"Regular Expression Denial of Service in string package","description":"Affected versions of `string` are vulnerable to regular expression denial of service when specifically crafted untrusted user input is passed into the `underscore` or `unescapeHTML` methods.\n\n\n## Recommendation\n\nThere is currently no direct patch for this vulnerability. \n\nCurrently, the best solution is to avoid passing user input to the `underscore` and `unescapeHTML` methods.\n\nAlternatively, a user provided patch is available in [Pull Request #217]( https://github.com/jprichardson/string.js/pull/217/commits/eab9511e4efbc8c521e18b6cf2e8565ae50c5a16), however this patch has not been tested, nor has it been merged by the package author.","status":"published","published":"2018-07-24T20:16:11Z","modified":"2023-11-08T03:59:05.768508Z","cvss":[{"version":"3.1","score":7.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H","level":"high"}],"cwes":["CWE-400"],"updated_at":"2026-11-02T15:46:47.119724Z"}]}}
