The Jetty URI parser has some key differences compared to other common parsers when evaluating invalid or unusual URIs. Specifically:
| URI | Jetty | uri-js (nodejs) | node-url(nodejs) |
|---|---|---|---|
https>://vulndetector.com/path |
scheme=http> |
scheme=https |
invalid URI |
| URI | Jetty | System.Uri(CSharp) | curl(C) |
|---|---|---|---|
http://[0:0:0:0:0:ffff:127.0.0.1] |
invalid | host=[::ffff:127.0.0.1] |
host=[::ffff:127.0.0.1] |
http://[::ffff:255.255.0.0] |
invalid | host=[::ffff:255.255.0.0] |
host=[::ffff:255.255.0.0] |
| URI | Jetty | urllib3(python) | furl(python) | Spring | chromium |
|---|---|---|---|---|---|
http://[normal.com@]vulndetector.com/ |
host=[normal.com@] |
invalid | invalid | ||
http://normal.com[user@vulndetector].com/ |
host=`[noirmal.com@vulndetector | host=normal.com |
invalid | ||
http://normal.com[@]vulndetector.com/ |
host=`normal.com[@] | host=normal.com |
invalid |
| URI | Jetty | urllib3(python) | jersey |
|---|---|---|---|
http://normal.com/#@vulndetector.com |
host=vulndetector.com |
host=normal.com |
host=normal.com |
http://normal.com/?@vulndetector.com |
host=vulndetector.com |
host=normal.com |
host=normal.com |
Differential parsing of URIs in systems using multiple components may result in security by-pass. For example a component that enforces a black list may interpret the URIs differently from one that generates a response. At the very least, differential parsing may divulge implementation details.
Patched in Supported Open Source versions.
None
{
"cwe_ids": [
"CWE-20"
],
"github_reviewed": true,
"github_reviewed_at": "2026-03-05T21:41:25Z",
"nvd_published_at": "2026-03-05T10:15:54Z",
"severity": "LOW"
}