Skip to content

fix: decode request path before SigV4 canonicalization - #9

Merged
kilyanni merged 1 commit into
masterfrom
fix/sigv4-plus-key-double-encoding
Jul 13, 2026
Merged

fix: decode request path before SigV4 canonicalization#9
kilyanni merged 1 commit into
masterfrom
fix/sigv4-plus-key-double-encoding

Conversation

@kilyanni

Copy link
Copy Markdown

The auth path fed hyper's raw (percent-encoded) request path into
create_canonical_request, which uri_encodes it a second time. Any key
with a reserved char was thus double-encoded (e.g. + -> %2B -> %252B),
so the server's canonical URI no longer matched the client's and every
such request failed with SignatureDoesNotMatch.

Checked against rclone: a + object key returns 403 before this
change and is accepted after; a plain key is accepted both ways.

@kilyanni
kilyanni requested a review from theduke July 10, 2026 14:03
@kilyanni
kilyanni merged commit d5d2337 into master Jul 13, 2026
3 checks passed
@kilyanni
kilyanni deleted the fix/sigv4-plus-key-double-encoding branch July 13, 2026 12:01
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants