{"id":"CVE-2022-0691","aliases":["CLSA-2026-1776904628","DEBIAN-CVE-2022-0691","DLA-3336-1","EUVD-2022-1074","GHSA-jf5r-8hm2-f872","UBUNTU-CVE-2022-0691","USN-5973-1"],"status":"published","title":"Authorization Bypass Through User-Controlled Key in unshiftio/url-parse","description":"Authorization Bypass Through User-Controlled Key in NPM url-parse prior to 1.5.9.","severity":{"version":"3.0","score":6.5,"vector":"CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:N","level":"medium","assessor":"cna","from":"cve"},"epss":{"day":"2026-11-08","score":0.0222,"percentile":0.82792,"model":"v2026.06.15"},"facts":{"in_kev":false,"known_exploited":false,"public_exploit":false,"fix_available":true},"cwes":["CWE-639"],"published":"2022-02-21T00:00:00Z","modified":"2026-11-03T08:01:46Z","fixes":[{"ecosystem":"npm","package":"url-parse","fixed_in":["1.5.9"],"sources":["ghsa","osv"]},{"ecosystem":"Debian:12","package":"node-url-parse","fixed_in":["1.5.9+~1.4.8-1"],"sources":["osv"]},{"ecosystem":"Debian:13","package":"node-url-parse","fixed_in":["1.5.9+~1.4.8-1"],"sources":["osv"]},{"ecosystem":"Debian:14","package":"node-url-parse","fixed_in":["1.5.9+~1.4.8-1"],"sources":["osv"]},{"ecosystem":"Ubuntu:Pro:16.04:LTS","package":"node-url-parse","fixed_in":["1.0.5-2ubuntu0.1~esm2"],"sources":["osv"]},{"ecosystem":"Ubuntu:18.04:LTS","package":"node-url-parse","fixed_in":["1.2.0-1ubuntu0.1"],"sources":["osv"]},{"ecosystem":"Ubuntu:20.04:LTS","package":"node-url-parse","fixed_in":["1.4.7-3ubuntu0.1"],"sources":["osv"]}],"affected":[{"source":"ghsa","ecosystem":"npm","package":"url-parse","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0.1.0"},{"fixed":"1.5.9"}]}]},{"source":"osv","ecosystem":"TuxCare:npm","package":"url-parse","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"1.4.7-tuxcare.0"},{"fixed":"1.4.7-tuxcare.1"}]}],"versions":["1.4.7"],"bundled":6},{"source":"osv","ecosystem":"Debian:12","package":"node-url-parse","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"1.5.9+~1.4.8-1"}]}]},{"source":"osv","ecosystem":"Debian:13","package":"node-url-parse","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"1.5.9+~1.4.8-1"}]}]},{"source":"osv","ecosystem":"Debian:14","package":"node-url-parse","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"1.5.9+~1.4.8-1"}]}]},{"source":"osv","ecosystem":"Debian:10","package":"node-url-parse","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"1.2.0-2+deb10u2"}]}],"versions":["1.2.0-2","1.2.0-2+deb10u1"],"bundled":6},{"source":"osv","ecosystem":"npm","package":"url-parse","ranges":[{"type":"SEMVER","events":[{"introduced":"0.1.0"},{"fixed":"1.5.9"}]}]},{"source":"osv","ecosystem":"Ubuntu:Pro:16.04:LTS","package":"node-url-parse","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"1.0.5-2ubuntu0.1~esm2"}]}],"versions":["1.0.5-1","1.0.5-2"]},{"source":"osv","ecosystem":"Ubuntu:18.04:LTS","package":"node-url-parse","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"1.2.0-1ubuntu0.1"}]}],"versions":["1.0.5-2","1.2.0-1"]},{"source":"osv","ecosystem":"Ubuntu:20.04:LTS","package":"node-url-parse","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"1.4.7-3ubuntu0.1"}]}],"versions":["1.4.7-3"]},{"source":"osv","ecosystem":"Ubuntu:Pro:16.04:LTS","package":"node-url-parse","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"1.0.5-2ubuntu0.1~esm2"}]}],"versions":["1.0.5-1","1.0.5-2"],"bundled":8},{"source":"osv","ecosystem":"Ubuntu:18.04:LTS","package":"node-url-parse","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"1.2.0-1ubuntu0.1"}]}],"versions":["1.0.5-2","1.2.0-1"],"bundled":8},{"source":"osv","ecosystem":"Ubuntu:20.04:LTS","package":"node-url-parse","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"1.4.7-3ubuntu0.1"}]}],"versions":["1.4.7-3"],"bundled":8}],"products":[{"vendor":"unshiftio","product":"unshiftio/url-parse"},{"vendor":"url-parse_project","product":"url-parse"}],"references":[{"url":"https://huntr.dev/bounties/57124ed5-4b68-4934-8325-2c546257f2e4","tags":["x_transferred","Exploit","Patch","Third Party Advisory","web","report"]},{"url":"https://github.com/unshiftio/url-parse/commit/0e3fb542d60ddbf6933f22eb9b1e06e25eaa5b63","tags":["x_transferred","Patch","Third Party Advisory","fix","web","report"]},{"url":"https://security.netapp.com/advisory/ntap-20220325-0006/","tags":["x_transferred","Third Party Advisory","advisory"]},{"url":"https://lists.debian.org/debian-lts-announce/2023/02/msg00030.html","tags":["mailing-list","x_transferred","article","web"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2022-0691","tags":["advisory"]},{"url":"https://github.com/github/advisory-database/pull/6765","tags":["web"]},{"url":"https://security.netapp.com/advisory/ntap-20220325-0006","tags":["web"]},{"url":"https://github.com/advisories/GHSA-jf5r-8hm2-f872"},{"url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2022/0xxx/CVE-2022-0691.json","tags":["advisory"]},{"url":"https://security-tracker.debian.org/tracker/CVE-2022-0691","tags":["advisory"]},{"url":"https://github.com/unshiftio/url-parse","tags":["package"]},{"url":"https://ubuntu.com/security/CVE-2022-0691","tags":["report"]},{"url":"https://ubuntu.com/security/notices/USN-5973-1","tags":["advisory"]},{"url":"https://www.cve.org/CVERecord?id=CVE-2022-0691","tags":["report"]},{"url":"https://ubuntu.com/security/CVE-2018-3774","tags":["report"]},{"url":"https://ubuntu.com/security/CVE-2020-8124","tags":["report"]},{"url":"https://ubuntu.com/security/CVE-2021-3664","tags":["report"]},{"url":"https://ubuntu.com/security/CVE-2021-27515","tags":["report"]},{"url":"https://ubuntu.com/security/CVE-2022-0512","tags":["report"]},{"url":"https://ubuntu.com/security/CVE-2022-0639","tags":["report"]},{"url":"https://ubuntu.com/security/CVE-2022-0686","tags":["report"]}],"sources":{"cve":[{"id":"CVE-2022-0691","title":"Authorization Bypass Through User-Controlled Key in unshiftio/url-parse","description":"Authorization Bypass Through User-Controlled Key in NPM url-parse prior to 1.5.9.","status":"published","published":"2022-02-21T00:00:00Z","modified":"2024-08-02T23:40:03.252Z","cvss":[{"version":"3.0","score":6.5,"vector":"CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:N","level":"medium","assessor":"cna"}],"cwes":["CWE-639"],"updated_at":"2026-11-02T14:34:41.69911Z"}],"euvd":[{"id":"EUVD-2022-1074","description":"Authorization Bypass Through User-Controlled Key in NPM url-parse prior to 1.5.9.","status":"published","published":"2022-02-21T00:00:00Z","modified":"2024-08-02T23:40:03Z","cvss":[{"version":"3.0","score":6.5,"vector":"CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:N","level":"medium"}],"updated_at":"2026-11-03T03:26:03.912978Z"}],"ghsa":[{"id":"GHSA-jf5r-8hm2-f872","title":"url-parse incorrectly parses hostname / protocol due to unstripped leading control characters.","description":"Leading control characters in a URL are not stripped when passed into url-parse. This can cause input URLs to be mistakenly be interpreted as a relative URL without a hostname and protocol, while the WHATWG URL parser will trim control characters and treat it as an absolute URL.\n\nIf url-parse is used in security decisions involving the hostname / protocol, and the input URL is used in a client which uses the WHATWG URL parser, the decision may be incorrect.\n\nThis can also lead to a cross-site scripting (XSS) vulnerability if url-parse is used to check for the javascript: protocol in URLs. See following example:\n```js\nconst parse = require('url-parse')\nconst express = require('express')\nconst app = express()\nconst port = 3000\n\nurl = parse(\\\"\\\\bjavascript:alert(1)\\\")\n\nconsole.log(url)\n\napp.get('/', (req, res) =\u003e {\n if (url.protocol !== \\\"javascript:\\\") {res.send(\\\"\u003ca href=\\\\'\\\" + url.href + \\\"\\\\'\u003eCLICK ME!\u003c/a\u003e\\\")}\n })\n\napp.listen(port, () =\u003e {\n console.log(`Example app listening on port ${port}`)\n })\n```","status":"published","published":"2022-02-22T00:00:30Z","modified":"2026-02-03T22:10:37Z","cvss":[{"version":"3.0","score":6.5,"vector":"CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:N","level":"medium"}],"cwes":["CWE-639"],"updated_at":"2026-11-02T14:39:22.637668Z"}],"nvd":[{"id":"CVE-2022-0691","description":"Authorization Bypass Through User-Controlled Key in NPM url-parse prior to 1.5.9.","status":"published","published":"2022-02-21T09:15:07.297Z","modified":"2026-06-17T04:21:04.393Z","cvss":[{"version":"3.1","score":9.8,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H","level":"critical","assessor":"primary"},{"version":"3.0","score":6.5,"vector":"CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:N","level":"medium","assessor":"secondary"},{"version":"2.0","score":7.5,"vector":"AV:N/AC:L/Au:N/C:P/I:P/A:P","level":"high","assessor":"primary"}],"cwes":["CWE-639"],"updated_at":"2026-11-02T14:07:12.711288Z"}],"osv":[{"id":"CVE-2022-0691","title":"Authorization Bypass Through User-Controlled Key in unshiftio/url-parse","description":"Authorization Bypass Through User-Controlled Key in NPM url-parse prior to 1.5.9.","status":"published","published":"2022-02-21T00:00:00Z","modified":"2026-10-28T02:30:40.353371365Z","cvss":[{"version":"3.0","score":6.5,"vector":"CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:N","level":"medium"}],"cwes":["CWE-639"],"updated_at":"2026-11-02T15:44:22.824781Z"},{"id":"DEBIAN-CVE-2022-0691","description":"Authorization Bypass Through User-Controlled Key in NPM url-parse prior to 1.5.9.","status":"published","published":"2022-02-21T09:15:07.297Z","modified":"2026-11-03T08:01:46.06927005Z","cvss":[{"version":"3.1","score":9.8,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H","level":"critical"}],"updated_at":"2026-11-03T08:24:50.542442Z"},{"id":"GHSA-jf5r-8hm2-f872","title":"url-parse incorrectly parses hostname / protocol due to unstripped leading control characters.","description":"Leading control characters in a URL are not stripped when passed into url-parse. This can cause input URLs to be mistakenly be interpreted as a relative URL without a hostname and protocol, while the WHATWG URL parser will trim control characters and treat it as an absolute URL.\n\nIf url-parse is used in security decisions involving the hostname / protocol, and the input URL is used in a client which uses the WHATWG URL parser, the decision may be incorrect.\n\nThis can also lead to a cross-site scripting (XSS) vulnerability if url-parse is used to check for the javascript: protocol in URLs. See following example:\n```js\nconst parse = require('url-parse')\nconst express = require('express')\nconst app = express()\nconst port = 3000\n\nurl = parse(\\\"\\\\bjavascript:alert(1)\\\")\n\nconsole.log(url)\n\napp.get('/', (req, res) =\u003e {\n if (url.protocol !== \\\"javascript:\\\") {res.send(\\\"\u003ca href=\\\\'\\\" + url.href + \\\"\\\\'\u003eCLICK ME!\u003c/a\u003e\\\")}\n })\n\napp.listen(port, () =\u003e {\n console.log(`Example app listening on port ${port}`)\n })\n```","status":"published","published":"2022-02-22T00:00:30Z","modified":"2026-02-03T22:19:28.188485Z","cvss":[{"version":"3.0","score":6.5,"vector":"CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:N","level":"medium"}],"cwes":["CWE-639"],"updated_at":"2026-11-02T15:46:50.336262Z"},{"id":"UBUNTU-CVE-2022-0691","description":"Authorization Bypass Through User-Controlled Key in NPM url-parse prior to 1.5.9.","status":"published","published":"2022-02-21T09:15:00Z","modified":"2026-02-04T02:59:58.640151Z","cvss":[{"version":"3.1","score":9.8,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H","level":"critical"},{"version":"3.0","score":6.5,"vector":"CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:N","level":"medium"}],"updated_at":"2026-11-02T16:53:51.630172Z"},{"id":"CLSA-2026-1776904628","title":"TuxCare security update for url-parse (6 CVEs)","description":"TuxCare rebuilt url-parse to address 6 CVEs. Fixed in 1.4.7-tuxcare.1.","status":"published","published":"2026-08-04T14:52:27Z","modified":"2026-10-15T09:45:46.409490603Z","updated_at":"2026-11-02T15:43:44.384419Z"},{"id":"DLA-3336-1","title":"node-url-parse - security update","status":"published","published":"2023-02-23T00:00:00Z","modified":"2026-03-09T01:18:04.734945Z","updated_at":"2026-11-02T15:46:11.734021Z"},{"id":"USN-5973-1","title":"node-url-parse vulnerabilities","description":"It was discovered that url-parse incorrectly handled certain inputs. If a\nuser or an automated system were tricked into opening a specially crafted\ninput file, a remote attacker could possibly use this issue to cause a\ndenial of service, or to perform a server-side request forgery attack or open\nredirect attack. (CVE-2018-3774)\n\nIt was discovered that url-parse incorrectly handled certain inputs. If a\nuser or an automated system were tricked into opening a specially crafted\ninput file, a remote attacker could possibly use this issue to bypass input\nvalidation. This issue was only fixed in Ubuntu 18.04 LTS and\nUbuntu 20.04 LTS. (CVE-2020-8124)\n\nYaniv Nizry discovered that url-parse incorrectly handled certain inputs.\nIf a user or an automated system were tricked into opening a specially crafted\ninput file, a remote attacker could possibly use this issue to cause a\ndenial of service, or to perform a server-side request forgery attack or open\nredirect attack. This issue was only fixed in Ubuntu 18.04 LTS and\nUbuntu 20.04 LTS. (CVE-2021-27515)\n\nIt was discovered that url-parse incorrectly handled certain inputs.\nIf a user or an automated system were tricked into opening a specially crafted\ninput file, a remote attacker could possibly use this issue to cause a\ndenial of service, or to perform a server-side request forgery attack or open\nredirect attack. This issue was only fixed in Ubuntu 18.04 LTS and\nUbuntu 20.04 LTS. (CVE-2021-3664)\n\nIt was discovered that url-parse incorrectly handled certain inputs. If a\nuser or an automated system were tricked into opening a specially crafted\ninput file, a remote attacker could possibly use this issue to bypass\nauthorization. This issue was only fixed in Ubuntu 18.04 LTS and\nUbuntu 20.04 LTS. (CVE-2022-0512, CVE-2022-0639, CVE-2022-0691)\n\nRohan Sharma discovered that url-parse incorrectly handled certain inputs.\nIf a user or an automated system were tricked into opening a specially crafted\ninput file, a remote attacker could possibly use this issue to bypass\nauthorization. This issue was only fixed in Ubuntu 18.04 LTS and\nUbuntu 20.04 LTS. (CVE-2022-0686)\n","status":"published","published":"2023-03-27T14:59:16Z","modified":"2026-06-25T13:31:55.291914058Z","updated_at":"2026-11-02T16:58:16.738762Z"}]}}
