CVE-2026-54330: Ceph RGW SigV4 handler accepts unsigned x-amz-* headers on presigned requests, allowing privilege escalation
Ceph is an open-source distributed storage platform providing object, block, and file storage. In versions prior to 20.2.4 and 19.2.6, the Ceph Object Gateway (RGW) SigV4 handler does not reject requests that carry x-amz- headers absent from the signed header set, allowing anyone holding a presigned URL to attach arbitrary unsigned x-amz- headers that RGW will honor. AWS S3 requires every x-amz- header on a SigV4 request to be signed and rejects requests bearing additional unsigned headers, but RGW validates only the headers listed in X-Amz-SignedHeaders and ignores any extra ones, so they take effect without being covered by the signature. By adding such headers to a presigned PUT URL, an attacker can grant themselves more capabilities than the URL's signer intended and escalate their privileges. This issue is fixed in versions 20.2.4 and 19.2.6.
Affected Software
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Upgrade
Upgrade
Ceph Object Gateway (RGW) SigV4 handlerto a version that resolves this vulnerability.Fixed in 20.2.4 - Upgrade
Upgrade
Ceph Object Gateway (RGW) SigV4 handlerto a version that resolves this vulnerability.Fixed in 19.2.6
Event History
Frequently Asked Questions
Who is exposed to this issue?
Ceph deployments using the Object Gateway (RGW) SigV4 handler are affected if they run a version earlier than 20.2.4 or 19.2.6 and issue presigned URLs. The risk applies specifically to presigned requests that can be supplied with additional x-amz-* headers.
What does an attacker need to exploit it?
An attacker needs possession of a valid presigned URL, such as a presigned PUT URL. No user interaction is required, but the attacker must be able to add x-amz-* headers that were not included in the URL's X-Amz-SignedHeaders list.
Does a presigned URL restrict unsigned x-amz-* headers on affected RGW versions?
No. Affected RGW versions validate the headers named in X-Amz-SignedHeaders but honor additional x-amz-* headers even though they are not covered by the signature, enabling capabilities beyond those intended by the signer.
Which versions contain the fix?
The issue is fixed in Ceph versions 20.2.4 and 19.2.6. Versions earlier than those releases are affected according to the provided advisory.