You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Our URI-matching does not properly match uri-encoded values that are legal path segments. We rely on Vert.x RoutingContext.normalizedPath() which only decodes percent-encoded chars from the unreserved category (see https://www.rfc-editor.org/rfc/rfc3986#section-2.4) but other values which are allowed as part of the path segment will not be decoded prior to matching:
In theory, in a segment, the characters "!" / "$" / "&" / "'" / "(" / ")" / "*" / "+" / "," / ";" / "=" / ":" / "@" do not need to be encoded, but they can, and so if we have an endpoint declared for /$ we should match both /$ and /%24 which decodes to the same thing.
Describe the bug
Our URI-matching does not properly match uri-encoded values that are legal path segments. We rely on Vert.x
RoutingContext.normalizedPath()
which only decodes percent-encoded chars from theunreserved
category (see https://www.rfc-editor.org/rfc/rfc3986#section-2.4) but other values which are allowed as part of the path segment will not be decoded prior to matching:In theory, in a segment, the characters
"!" / "$" / "&" / "'" / "(" / ")" / "*" / "+" / "," / ";" / "=" / ":" / "@"
do not need to be encoded, but they can, and so if we have an endpoint declared for/$
we should match both/$
and/%24
which decodes to the same thing.To reproduce:
Now call
wget 'http://localhost:8080/$'
andwget 'http://localhost:8080/%24'
, both should returnOK
and match the same endpoint.At the moment, only the first one works. This probably fails for all the other characters I've listed above.
Expected behavior
No response
Actual behavior
No response
How to Reproduce?
No response
Output of
uname -a
orver
No response
Output of
java -version
No response
GraalVM version (if different from Java)
No response
Quarkus version or git rev
No response
Build tool (ie. output of
mvnw --version
orgradlew --version
)No response
Additional information
No response
The text was updated successfully, but these errors were encountered: