- Description
- fast-uri accepts a host that contains an unbalanced or misplaced authority bracket without reporting an error. A host that starts with an opening bracket but does not end with a closing bracket is neither validated as an IP literal nor canonicalized as a domain name, so parse() returns it as the host with error undefined, while Node's URL and the HTTP clients built on it resolve the same string to a different host. An application that reads the parsed host to make a host decision, such as an SSRF denylist, a redirect allowlist, or proxy routing, and then passes the original URL to an HTTP client evaluates its policy against a string that is not the host the request reaches. The same host is carried through normalize, equal, and resolve. This affects fast-uri versions 2.4.5, 3.1.6, and 4.1.3, and is fixed in 2.4.6, 3.1.7, and 4.1.4, where parse() reports a malformed host for any host that contains a bracket but is not a valid IPv6 literal.
- Source
- ce714d77-add3-4f53-aff5-83d477b104bb
- NVD status
- Analyzed
- Products
- fast-uri
[
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:a:openjsf:fast-uri:2.4.5:*:*:*:*:node.js:*:*",
"matchCriteriaId": "7E247A05-D85A-432A-B9AD-5E109BBBA126",
"vulnerable": true
},
{
"criteria": "cpe:2.3:a:openjsf:fast-uri:3.1.6:*:*:*:*:node.js:*:*",
"matchCriteriaId": "244CB511-E707-46C2-86CA-EB9F166EDF2E",
"vulnerable": true
},
{
"criteria": "cpe:2.3:a:openjsf:fast-uri:4.1.3:*:*:*:*:node.js:*:*",
"matchCriteriaId": "9B9E720F-653C-4B03-BB56-65B68F0253B6",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
]