Bug #74579
openrgw-multisite: aws v4 signature broken for forwarded requests with UNSIGNED-PAYLOAD
0%
Description
create bucket request originating from non-master zone fails with 'Access Denied' error. this is due to signature mismatch.
on primary, the canonical request looks like:
PUT /test-bucket/
rgwx-uid=test&rgwx-zonegroup=25dcfb3b-f19e-4c2c-9a94-f35904c4fa8f
date:Tue Jan 27 06:11:02 2026
x-amz-content-sha256:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 ---> unsigned payload hash
x-amz-date:20260127T061102Ze3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855. ---> unsigned payload hash
on secondary:
PUT /test-bucket/
rgwx-uid=test&rgwx-zonegroup=25dcfb3b-f19e-4c2c-9a94-f35904c4fa8f
date:Tue Jan 27 06:11:02 2026
x-amz-content-sha256:UNSIGNED-PAYLOAD ---> should have been the unsigned payload hash
x-amz-date:20260127T061102Ze3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" ---> unsigned payload hash
the canonical header values are different on both sites causing client signature and server signature to be different.
this is because when the secondary's AWSSignerV4::prepare() is called while signing the request,
it sets UNSIGNED-PAYLOAD in the canonical headers instead of the hash.
probably a regression from https://github.com/ceph/ceph/pull/65723.
the secondary zone is overriding the header value with UNSIGNED-PAYLOAD for the canonical headers,
but keeping the actual hash for the payload hash line
Updated by Shilpa MJ about 2 months ago
- Status changed from New to Fix Under Review
- Pull request ID set to 67083
Updated by Casey Bodley 26 days ago
- Status changed from Fix Under Review to Pending Backport
Updated by Upkeep Bot 26 days ago
- Merge Commit set to 1633c4b246c0bcefc4395cd7026ad5b6770a3705
- Fixed In set to v20.3.0-5664-g1633c4b246
- Upkeep Timestamp set to 2026-02-26T14:44:43+00:00
Updated by Upkeep Bot 25 days ago
- Copied to Backport #75193: squid: rgw-multisite: aws v4 signature broken for forwarded requests with UNSIGNED-PAYLOAD added
Updated by Upkeep Bot 25 days ago
- Copied to Backport #75194: tentacle: rgw-multisite: aws v4 signature broken for forwarded requests with UNSIGNED-PAYLOAD added