{"id":"UBUNTU-CVE-2026-84394","details":"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.","modified":"2026-09-16T11:43:10Z","published":"2026-09-03T05:16:00Z","upstream":["CVE-2026-84394"],"references":[{"type":"REPORT","url":"https://ubuntu.com/security/CVE-2026-84394"},{"type":"REPORT","url":"https://www.cve.org/CVERecord?id=CVE-2026-84394"},{"type":"REPORT","url":"https://github.com/fastify/fast-uri/security/advisories/GHSA-58mr-gqgx-xq4g"},{"type":"REPORT","url":"https://cna.openjsf.org/security-advisories.html"}],"affected":[{"package":{"name":"node-ajv","ecosystem":"Ubuntu:18.04:LTS","purl":"pkg:deb/ubuntu/node-ajv?arch=source&distro=bionic"},"ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["5.0.0-1"],"ecosystem_specific":{"binaries":[{"binary_name":"node-ajv","binary_version":"5.0.0-1"}]},"database_specific":{"source":"https://github.com/canonical/ubuntu-security-notices/blob/main/osv/cve/2026/UBUNTU-CVE-2026-84394.json"}},{"package":{"name":"node-ajv","ecosystem":"Ubuntu:20.04:LTS","purl":"pkg:deb/ubuntu/node-ajv?arch=source&distro=focal"},"ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["6.10.2-1"],"ecosystem_specific":{"binaries":[{"binary_name":"node-ajv","binary_version":"6.10.2-1"}]},"database_specific":{"source":"https://github.com/canonical/ubuntu-security-notices/blob/main/osv/cve/2026/UBUNTU-CVE-2026-84394.json"}},{"package":{"name":"node-ajv","ecosystem":"Ubuntu:22.04:LTS","purl":"pkg:deb/ubuntu/node-ajv?arch=source&distro=jammy"},"ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["6.12.6-2","6.12.6-3"],"ecosystem_specific":{"binaries":[{"binary_name":"node-ajv","binary_version":"6.12.6-3"}]},"database_specific":{"source":"https://github.com/canonical/ubuntu-security-notices/blob/main/osv/cve/2026/UBUNTU-CVE-2026-84394.json"}},{"package":{"name":"node-ajv","ecosystem":"Ubuntu:24.04:LTS","purl":"pkg:deb/ubuntu/node-ajv?arch=source&distro=noble"},"ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["6.12.6-3","8.12.0~ds+~2.1.1-4"],"ecosystem_specific":{"binaries":[{"binary_name":"node-ajv","binary_version":"8.12.0~ds+~2.1.1-4"}]},"database_specific":{"source":"https://github.com/canonical/ubuntu-security-notices/blob/main/osv/cve/2026/UBUNTU-CVE-2026-84394.json"}},{"package":{"name":"node-ajv","ecosystem":"Ubuntu:26.04:LTS","purl":"pkg:deb/ubuntu/node-ajv?arch=source&distro=resolute"},"ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["8.12.0~ds+~2.1.1-5","8.17.1~ds+~3.0.1+~3.1.0-2","8.17.1~ds+~3.0.1+~3.1.0-4build1"],"ecosystem_specific":{"binaries":[{"binary_version":"8.17.1~ds+~3.0.1+~3.1.0-4build1","binary_name":"node-ajv"}]},"database_specific":{"source":"https://github.com/canonical/ubuntu-security-notices/blob/main/osv/cve/2026/UBUNTU-CVE-2026-84394.json"}}],"schema_version":"1.9.0","severity":[{"type":"CVSS_V3","score":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N"},{"type":"Ubuntu","score":"medium"}]}