Skip to content
This repository has been archived by the owner on Mar 1, 2024. It is now read-only.

Authorization Bypass Through User-Controlled Key #458

Open
philipjonsen opened this issue Mar 15, 2023 · 1 comment
Open

Authorization Bypass Through User-Controlled Key #458

philipjonsen opened this issue Mar 15, 2023 · 1 comment

Comments

@philipjonsen
Copy link

Incorrect hostname / protocol due to unstripped leading control characters. 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. If 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. This 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: const parse = require('url-parse') const express = require('express') const app = express() const port = 3000 url = parse(\"\\bjavascript:alert(1)\") console.log(url) app.get('/', (req, res) => { if (url.protocol !== \"javascript:\") {res.send(\"[CLICK ME!](file://%27/%22)\")} }) app.listen(port, () => { console.log(`Example app listening on port ${port}`) })

@philipjonsen
Copy link
Author

introduced trough package.json

Fix: update to "version": "1.5.9",
"resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.9.tgz",

urlparse (npm)

CVE-2022-0691

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant