{"id":"CVE-2016-10539","aliases":["AZL-44826","CLSA-2026-1774830279","CLSA-2026-1784682762","CLSA-2026-1792489812","CLSA-2026-1793867536","CLSA-2026-1793867538","DEBIAN-CVE-2016-10539","EUVD-2018-0538","GHSA-7mc5-chhp-fmc3","ROOT-APP-NPM-CVE-2016-10539","UBUNTU-CVE-2016-10539"],"status":"published","title":"Regular Expression Denial of Service in negotiator","description":"negotiator is an HTTP content negotiator for Node.js and is used by many modules and frameworks including Express and Koa. The header for \"Accept-Language\", when parsed by negotiator 0.6.0 and earlier is vulnerable to Regular Expression Denial of Service via a specially crafted string.","severity":{"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","assessor":"primary","from":"nvd"},"epss":{"day":"2026-11-08","score":0.01389,"percentile":0.72483,"model":"v2026.06.15"},"facts":{"in_kev":false,"known_exploited":false,"public_exploit":false,"fix_available":true},"cwes":["CWE-20","CWE-400"],"published":"2018-05-31T20:00:00Z","modified":"2026-11-05T13:15:14Z","fixes":[{"ecosystem":"npm","package":"negotiator","fixed_in":["0.6.1"],"sources":["ghsa","osv"]},{"ecosystem":"TuxCare:npm","package":"negotiator","fixed_in":["0.5.3-tuxcare.1","0.3.0-tuxcare.1","0.4.7-tuxcare.1","0.3.0-tuxcare.2","0.4.7-tuxcare.2"],"sources":["osv"]},{"ecosystem":"Debian:12","package":"node-negotiator","fixed_in":["0.6.1-1"],"sources":["osv"]},{"ecosystem":"Debian:13","package":"node-negotiator","fixed_in":["0.6.1-1"],"sources":["osv"]},{"ecosystem":"Debian:14","package":"node-negotiator","fixed_in":["0.6.1-1"],"sources":["osv"]},{"ecosystem":"Ubuntu:18.04:LTS","package":"node-negotiator","fixed_in":["0.6.1-1"],"sources":["osv"]},{"ecosystem":"Ubuntu:20.04:LTS","package":"node-negotiator","fixed_in":["0.6.1-1"],"sources":["osv"]}],"affected":[{"source":"ghsa","ecosystem":"npm","package":"negotiator","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0.6.1"}]}]},{"source":"osv","ecosystem":"Azure Linux:3","package":"nodejs-nodemon","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"last_affected":"2.0.3-5"}]}]},{"source":"osv","ecosystem":"TuxCare:npm","package":"negotiator","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0.5.3-tuxcare.0"},{"fixed":"0.5.3-tuxcare.1"}]}],"versions":["0.5.3"]},{"source":"osv","ecosystem":"TuxCare:npm","package":"negotiator","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0.3.0-tuxcare.0"},{"fixed":"0.3.0-tuxcare.1"}]}],"versions":["0.3.0"]},{"source":"osv","ecosystem":"TuxCare:npm","package":"negotiator","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0.4.7-tuxcare.0"},{"fixed":"0.4.7-tuxcare.1"}]}],"versions":["0.4.7"]},{"source":"osv","ecosystem":"TuxCare:npm","package":"negotiator","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0.3.0-tuxcare.0"},{"fixed":"0.3.0-tuxcare.2"}]}],"versions":["0.3.0","0.3.0-tuxcare.1"]},{"source":"osv","ecosystem":"TuxCare:npm","package":"negotiator","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0.4.7-tuxcare.0"},{"fixed":"0.4.7-tuxcare.2"}]}],"versions":["0.4.7","0.4.7-tuxcare.1"]},{"source":"osv","ecosystem":"Debian:12","package":"node-negotiator","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0.6.1-1"}]}]},{"source":"osv","ecosystem":"Debian:13","package":"node-negotiator","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0.6.1-1"}]}]},{"source":"osv","ecosystem":"Debian:14","package":"node-negotiator","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0.6.1-1"}]}]},{"source":"osv","ecosystem":"npm","package":"negotiator","ranges":[{"type":"SEMVER","events":[{"introduced":"0"},{"fixed":"0.6.1"}]}]},{"source":"osv","ecosystem":"Ubuntu:16.04:LTS","package":"node-negotiator","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["0.4.8-1"]},{"source":"osv","ecosystem":"Ubuntu:18.04:LTS","package":"node-negotiator","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0.6.1-1"}]}],"versions":["0.4.8-1"]},{"source":"osv","ecosystem":"Ubuntu:20.04:LTS","package":"node-negotiator","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0.6.1-1"}]}]}],"products":[{"vendor":"hackerone","product":"negotiator node module"},{"vendor":"negotiator_project","product":"negotiator"}],"references":[{"url":"https://nodesecurity.io/advisories/106","tags":["x_refsource_MISC","x_transferred","Third Party Advisory","advisory","report"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2016-10539","tags":["web","advisory"]},{"url":"https://github.com/advisories/GHSA-7mc5-chhp-fmc3","tags":["advisory"]},{"url":"https://www.npmjs.com/advisories/106","tags":["web"]},{"url":"https://security-tracker.debian.org/tracker/CVE-2016-10539","tags":["advisory"]},{"url":"https://ubuntu.com/security/CVE-2016-10539","tags":["report"]},{"url":"https://www.cve.org/CVERecord?id=CVE-2016-10539","tags":["report"]}],"sources":{"cve":[{"id":"CVE-2016-10539","description":"negotiator is an HTTP content negotiator for Node.js and is used by many modules and frameworks including Express and Koa. The header for \"Accept-Language\", when parsed by negotiator 0.6.0 and earlier is vulnerable to Regular Expression Denial of Service via a specially crafted string.","status":"published","published":"2018-05-31T20:00:00Z","modified":"2024-09-17T02:11:28.261Z","cwes":["CWE-400"],"updated_at":"2026-11-02T14:33:31.450804Z"}],"euvd":[{"id":"EUVD-2018-0538","description":"negotiator is an HTTP content negotiator for Node.js and is used by many modules and frameworks including Express and Koa. The header for \"Accept-Language\", when parsed by negotiator 0.6.0 and earlier is vulnerable to Regular Expression Denial of Service via a specially crafted string.","status":"published","published":"2018-05-31T20:00:00Z","modified":"2024-09-17T02:11:28Z","updated_at":"2026-11-03T00:28:42.924013Z"}],"ghsa":[{"id":"GHSA-7mc5-chhp-fmc3","title":"Regular Expression Denial of Service in negotiator","description":"Affected versions of `negotiator` are vulnerable to regular expression denial of service attacks, which trigger upon parsing a specially crafted `Accept-Language` header value.\n\n\n\n\n## Recommendation\n\nUpdate to version 0.6.1 or later.","status":"published","published":"2018-10-09T00:30:30Z","modified":"2023-01-09T05:02:36Z","cwes":["CWE-400"],"updated_at":"2026-11-02T14:36:03.768255Z"}],"nvd":[{"id":"CVE-2016-10539","description":"negotiator is an HTTP content negotiator for Node.js and is used by many modules and frameworks including Express and Koa. The header for \"Accept-Language\", when parsed by negotiator 0.6.0 and earlier is vulnerable to Regular Expression Denial of Service via a specially crafted string.","status":"published","published":"2018-05-31T20:29:01.407Z","modified":"2026-06-17T00:39:54.123Z","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","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","CWE-20"],"updated_at":"2026-11-02T14:03:39.176887Z"}],"osv":[{"id":"AZL-44826","title":"CVE-2016-10539 affecting package nodejs-nodemon 2.0.3-5","description":"negotiator is an HTTP content negotiator for Node.js and is used by many modules and frameworks including Express and Koa. The header for \"Accept-Language\", when parsed by negotiator 0.6.0 and earlier is vulnerable to Regular Expression Denial of Service via a specially crafted string.","status":"published","published":"2018-05-31T20:29:01Z","modified":"2026-11-05T05:36:30Z","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"}],"updated_at":"2026-11-05T16:41:20.321068Z"},{"id":"CVE-2016-10539","description":"negotiator is an HTTP content negotiator for Node.js and is used by many modules and frameworks including Express and Koa. The header for \"Accept-Language\", when parsed by negotiator 0.6.0 and earlier is vulnerable to Regular Expression Denial of Service via a specially crafted string.","status":"published","published":"2018-05-31T20:29:01.407Z","modified":"2026-10-24T10:30:51.489574326Z","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"}],"updated_at":"2026-11-02T15:44:01.531338Z"},{"id":"DEBIAN-CVE-2016-10539","description":"negotiator is an HTTP content negotiator for Node.js and is used by many modules and frameworks including Express and Koa. The header for \"Accept-Language\", when parsed by negotiator 0.6.0 and earlier is vulnerable to Regular Expression Denial of Service via a specially crafted string.","status":"published","published":"2018-05-31T20:29:01.407Z","modified":"2026-09-22T07:01:21.853946727Z","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"}],"updated_at":"2026-11-02T15:45:27.323751Z"},{"id":"UBUNTU-CVE-2016-10539","description":"negotiator is an HTTP content negotiator for Node.js and is used by many modules and frameworks including Express and Koa. The header for \"Accept-Language\", when parsed by negotiator 0.6.0 and earlier is vulnerable to Regular Expression Denial of Service via a specially crafted string.","status":"published","published":"2018-05-31T20:29:00Z","modified":"2025-10-24T04:46:00Z","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"}],"updated_at":"2026-11-02T15:54:11.492576Z"},{"id":"CLSA-2026-1774830279","title":"TuxCare security update for negotiator (1 CVE)","description":"TuxCare rebuilt negotiator to address 1 CVE. Fixed in 0.5.3-tuxcare.1.","status":"published","published":"2026-08-04T14:52:16Z","modified":"2026-10-15T09:47:35.759248985Z","updated_at":"2026-11-02T15:43:43.621843Z"},{"id":"CLSA-2026-1784682762","title":"TuxCare security update for negotiator (1 CVE)","description":"TuxCare rebuilt negotiator to address 1 CVE. Fixed in 0.3.0-tuxcare.1.","status":"published","published":"2026-08-04T14:52:46Z","modified":"2026-10-15T09:47:54.163672073Z","updated_at":"2026-11-02T15:43:46.482572Z"},{"id":"CLSA-2026-1792489812","title":"TuxCare security update for negotiator (1 CVE)","description":"TuxCare rebuilt negotiator to address 1 CVE. Fixed in 0.4.7-tuxcare.1.","status":"published","published":"2026-10-20T09:50:12Z","modified":"2026-10-20T13:45:12.463649321Z","updated_at":"2026-11-02T15:43:54.378946Z"},{"id":"CLSA-2026-1793867536","title":"TuxCare security update for negotiator (1 CVE)","description":"TuxCare rebuilt negotiator to address 1 CVE. Fixed in 0.3.0-tuxcare.2.","status":"published","published":"2026-11-05T09:32:17Z","modified":"2026-11-05T13:15:13.565781649Z","updated_at":"2026-11-05T13:30:00.949926Z"},{"id":"CLSA-2026-1793867538","title":"TuxCare security update for negotiator (1 CVE)","description":"TuxCare rebuilt negotiator to address 1 CVE. Fixed in 0.4.7-tuxcare.2.","status":"published","published":"2026-11-05T09:32:18Z","modified":"2026-11-05T13:15:14.821536367Z","updated_at":"2026-11-05T13:30:00.949926Z"},{"id":"GHSA-7mc5-chhp-fmc3","title":"Regular Expression Denial of Service in negotiator","description":"Affected versions of `negotiator` are vulnerable to regular expression denial of service attacks, which trigger upon parsing a specially crafted `Accept-Language` header value.\n\n\n\n\n## Recommendation\n\nUpdate to version 0.6.1 or later.","status":"published","published":"2018-10-09T00:30:30Z","modified":"2023-11-08T03:58:11.394437Z","cwes":["CWE-400"],"updated_at":"2026-11-02T15:46:41.349637Z"},{"id":"ROOT-APP-NPM-CVE-2016-10539","title":"CVE-2016-10539 in negotiator - Patched by Root","description":"Root has patched CVE-2016-10539 in the negotiator package for Root:npm. Multiple fixed versions available.","status":"withdrawn","published":"2026-08-05T16:01:22Z","modified":"2026-08-06T14:00:14.943025481Z","updated_at":"2026-11-02T15:53:27.362922Z"}]}}
