{"id":"CVE-2016-3956","aliases":["DEBIAN-CVE-2016-3956","EUVD-2018-0293","GHSA-m5h6-hr3q-22h5","UBUNTU-CVE-2016-3956","USN-4785-1"],"status":"published","title":"npm Token Leak in npm","description":"The CLI in npm before 2.15.1 and 3.x before 3.8.3, as used in Node.js 0.10 before 0.10.44, 0.12 before 0.12.13, 4 before 4.4.2, and 5 before 5.10.0, includes bearer tokens with arbitrary requests, which allows remote HTTP servers to obtain sensitive information by reading Authorization headers.","severity":{"version":"3.1","score":7.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N","level":"high","assessor":"primary","from":"nvd"},"epss":{"day":"2026-11-08","score":0.05456,"percentile":0.92791,"model":"v2026.06.15"},"facts":{"in_kev":false,"known_exploited":false,"public_exploit":false,"fix_available":true},"cwes":["CWE-200"],"published":"2016-07-02T14:00:00Z","modified":"2026-10-24T10:48:12Z","fixes":[{"ecosystem":"npm","package":"npm","fixed_in":["2.15.1","3.8.3"],"sources":["ghsa","osv"]},{"ecosystem":"Debian:12","package":"npm","fixed_in":["5.8.0+ds-2"],"sources":["osv"]},{"ecosystem":"Debian:13","package":"npm","fixed_in":["5.8.0+ds-2"],"sources":["osv"]},{"ecosystem":"Debian:14","package":"npm","fixed_in":["5.8.0+ds-2"],"sources":["osv"]},{"ecosystem":"Ubuntu:Pro:16.04:LTS","package":"npm","fixed_in":["3.5.2-0ubuntu4.1.16.04.1~esm1"],"sources":["osv"]},{"ecosystem":"Ubuntu:Pro:18.04:LTS","package":"npm","fixed_in":["3.5.2-0ubuntu4.1.18.04.1~esm1"],"sources":["osv"]}],"affected":[{"source":"ghsa","ecosystem":"npm","package":"npm","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"last_affected":"2.15.0"},{"fixed":"2.15.1"}]}]},{"source":"ghsa","ecosystem":"npm","package":"npm","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"3.0.0"},{"last_affected":"3.8.2"},{"fixed":"3.8.3"}]}]},{"source":"osv","ecosystem":"Debian:12","package":"npm","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"5.8.0+ds-2"}]}]},{"source":"osv","ecosystem":"Debian:13","package":"npm","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"5.8.0+ds-2"}]}]},{"source":"osv","ecosystem":"Debian:14","package":"npm","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"5.8.0+ds-2"}]}]},{"source":"osv","ecosystem":"npm","package":"npm","ranges":[{"type":"SEMVER","events":[{"introduced":"0"},{"fixed":"2.15.1"}]}]},{"source":"osv","ecosystem":"npm","package":"npm","ranges":[{"type":"SEMVER","events":[{"introduced":"3.0.0"},{"fixed":"3.8.3"}]}]},{"source":"osv","ecosystem":"Ubuntu:Pro:16.04:LTS","package":"npm","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"3.5.2-0ubuntu4.1.16.04.1~esm1"}]}],"versions":["1.4.21+ds-2","3.5.2-0ubuntu4"]},{"source":"osv","ecosystem":"Ubuntu:Pro:18.04:LTS","package":"npm","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"3.5.2-0ubuntu4.1.18.04.1~esm1"}]}],"versions":["3.5.2-0ubuntu4"]},{"source":"osv","ecosystem":"Ubuntu:Pro:16.04:LTS","package":"npm","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"3.5.2-0ubuntu4.1.16.04.1~esm1"}]}],"versions":["1.4.21+ds-2","3.5.2-0ubuntu4"]},{"source":"osv","ecosystem":"Ubuntu:Pro:18.04:LTS","package":"npm","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"3.5.2-0ubuntu4.1.18.04.1~esm1"}]}],"versions":["3.5.2-0ubuntu4"]}],"products":[{"vendor":"ibm","product":"sdk"},{"vendor":"nodejs","product":"node.js"},{"vendor":"npmjs","product":"npm"}],"references":[{"url":"https://github.com/npm/npm/issues/8380","tags":["x_refsource_CONFIRM","x_transferred","Third Party Advisory","advisory","web","report"]},{"url":"https://github.com/npm/npm/commit/f67ecad59e99a03e5aad8e93cd1a086ae087cb29","tags":["x_refsource_CONFIRM","x_transferred","Patch","Third Party Advisory","fix","web"]},{"url":"http://www-01.ibm.com/support/docview.wss?uid=swg21980827","tags":["x_refsource_CONFIRM","x_transferred","Vendor Advisory","advisory","web","report"]},{"url":"https://github.com/npm/npm/commit/fea8cc92cee02c720b58f95f14d315507ccad401","tags":["x_refsource_CONFIRM","x_transferred","Patch","Third Party Advisory","fix","web"]},{"url":"http://blog.npmjs.org/post/142036323955/fixing-a-bearer-token-vulnerability","tags":["x_refsource_CONFIRM","x_transferred","Vendor Advisory","advisory","web","report"]},{"url":"https://nodejs.org/en/blog/vulnerability/npm-tokens-leak-march-2016/","tags":["x_refsource_CONFIRM","x_transferred","Vendor Advisory","advisory","report"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2016-3956","tags":["advisory"]},{"url":"https://github.com/advisories/GHSA-m5h6-hr3q-22h5","tags":["advisory"]},{"url":"https://www.npmjs.com/advisories/98","tags":["web"]},{"url":"https://security-tracker.debian.org/tracker/CVE-2016-3956","tags":["advisory"]},{"url":"https://nodejs.org/en/blog/vulnerability/npm-tokens-leak-march-2016","tags":["web"]},{"url":"https://ubuntu.com/security/CVE-2016-3956","tags":["report"]},{"url":"https://ubuntu.com/security/notices/USN-4785-1","tags":["advisory"]},{"url":"https://www.cve.org/CVERecord?id=CVE-2016-3956","tags":["report"]}],"sources":{"cve":[{"id":"CVE-2016-3956","description":"The CLI in npm before 2.15.1 and 3.x before 3.8.3, as used in Node.js 0.10 before 0.10.44, 0.12 before 0.12.13, 4 before 4.4.2, and 5 before 5.10.0, includes bearer tokens with arbitrary requests, which allows remote HTTP servers to obtain sensitive information by reading Authorization headers.","status":"published","published":"2016-07-02T14:00:00Z","modified":"2024-08-06T00:10:31.975Z","updated_at":"2026-11-02T14:33:34.094161Z"}],"euvd":[{"id":"EUVD-2018-0293","description":"The CLI in npm before 2.15.1 and 3.x before 3.8.3, as used in Node.js 0.10 before 0.10.44, 0.12 before 0.12.13, 4 before 4.4.2, and 5 before 5.10.0, includes bearer tokens with arbitrary requests, which allows remote HTTP servers to obtain sensitive information by reading Authorization headers.","status":"published","published":"2016-07-02T14:00:00Z","modified":"2024-08-06T00:10:31Z","updated_at":"2026-11-03T02:22:48.690835Z"}],"ghsa":[{"id":"GHSA-m5h6-hr3q-22h5","title":"npm Token Leak in npm","description":"Affected versions of the `npm` package include the bearer token of the logged in user in every request made by the CLI, even if the request is not directed towards the user's active registry. \n\nAn attacker could create an HTTP server to collect tokens, and by various means including but not limited to install scripts, cause the npm CLI to make a request to that server, which would compromise the user's token.\n\nThis compromised token could be used to do anything that the user could do, including publishing new packages.\n\n\n\n\n## Recommendation\n\n1. Update npm with `npm install npm@latest -g`\n2. [Revoke your Tokens](https://www.npmjs.com/settings/tokens)\n3. Enable [Two-Factor Authentication](https://docs.npmjs.com/getting-started/using-two-factor-authentication)","status":"published","published":"2018-07-31T22:58:35Z","modified":"2023-02-01T05:03:45Z","cwes":["CWE-200"],"updated_at":"2026-11-02T14:36:31.364752Z"}],"nvd":[{"id":"CVE-2016-3956","description":"The CLI in npm before 2.15.1 and 3.x before 3.8.3, as used in Node.js 0.10 before 0.10.44, 0.12 before 0.12.13, 4 before 4.4.2, and 5 before 5.10.0, includes bearer tokens with arbitrary requests, which allows remote HTTP servers to obtain sensitive information by reading Authorization headers.","status":"published","published":"2016-07-02T14:59:19.417Z","modified":"2026-06-17T00:46:38.163Z","cvss":[{"version":"3.1","score":7.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N","level":"high","assessor":"primary"},{"version":"2.0","score":5,"vector":"AV:N/AC:L/Au:N/C:P/I:N/A:N","level":"medium","assessor":"primary"}],"cwes":["CWE-200"],"updated_at":"2026-11-02T14:03:26.642445Z"}],"osv":[{"id":"CVE-2016-3956","description":"The CLI in npm before 2.15.1 and 3.x before 3.8.3, as used in Node.js 0.10 before 0.10.44, 0.12 before 0.12.13, 4 before 4.4.2, and 5 before 5.10.0, includes bearer tokens with arbitrary requests, which allows remote HTTP servers to obtain sensitive information by reading Authorization headers.","status":"published","published":"2016-07-02T14:59:19.417Z","modified":"2026-10-24T10:48:12.980435056Z","cvss":[{"version":"3.1","score":7.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N","level":"high"}],"updated_at":"2026-11-02T15:44:02.454775Z"},{"id":"DEBIAN-CVE-2016-3956","description":"The CLI in npm before 2.15.1 and 3.x before 3.8.3, as used in Node.js 0.10 before 0.10.44, 0.12 before 0.12.13, 4 before 4.4.2, and 5 before 5.10.0, includes bearer tokens with arbitrary requests, which allows remote HTTP servers to obtain sensitive information by reading Authorization headers.","status":"published","published":"2016-07-02T14:59:19.417Z","modified":"2026-09-22T07:01:59.804857349Z","cvss":[{"version":"3.1","score":7.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N","level":"high"}],"updated_at":"2026-11-02T15:45:27.627285Z"},{"id":"UBUNTU-CVE-2016-3956","description":"The CLI in npm before 2.15.1 and 3.x before 3.8.3, as used in Node.js 0.10 before 0.10.44, 0.12 before 0.12.13, 4 before 4.4.2, and 5 before 5.10.0, includes bearer tokens with arbitrary requests, which allows remote HTTP servers to obtain sensitive information by reading Authorization headers.","status":"published","published":"2016-07-02T14:59:00Z","modified":"2026-02-04T03:03:18.084608Z","cvss":[{"version":"3.1","score":7.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N","level":"high"},{"version":"3.0","score":7.5,"vector":"CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N","level":"high"}],"updated_at":"2026-11-02T15:54:12.261906Z"},{"id":"GHSA-m5h6-hr3q-22h5","title":"npm Token Leak in npm","description":"Affected versions of the `npm` package include the bearer token of the logged in user in every request made by the CLI, even if the request is not directed towards the user's active registry. \n\nAn attacker could create an HTTP server to collect tokens, and by various means including but not limited to install scripts, cause the npm CLI to make a request to that server, which would compromise the user's token.\n\nThis compromised token could be used to do anything that the user could do, including publishing new packages.\n\n\n\n\n## Recommendation\n\n1. Update npm with `npm install npm@latest -g`\n2. [Revoke your Tokens](https://www.npmjs.com/settings/tokens)\n3. Enable [Two-Factor Authentication](https://docs.npmjs.com/getting-started/using-two-factor-authentication)","status":"published","published":"2018-07-31T22:58:35Z","modified":"2026-09-10T03:47:01.644240263Z","cwes":["CWE-200"],"updated_at":"2026-11-02T15:46:51.463834Z"},{"id":"USN-4785-1","title":"npm vulnerability","description":"It was discovered that the npm command-line interface mishandled certain\nsensitive information. An attacker could use this vulnerability to collect\nauthentication information that could be used to impersonate other users.\n","status":"published","published":"2021-03-15T21:03:23Z","modified":"2026-06-25T13:30:25.105039741Z","updated_at":"2026-11-02T16:58:15.159055Z"}]}}
