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.
- Products
- Not specified
- Affected versions
- Not specified
- Fixed versions
- Not specified
- CVEs
- CVE-2026-54330
- Confirmed fixed CVEs
- Not specified
- Updated in this feed
- 3 Nov 2026, 15:11 UTC · Revision 1
Source evidence
Ceph RGW SigV4 handler accepts unsigned x-amz-* headers on presigned requests, allowing privilege escalation
core-osv · Original sourcePublished 27 Aug 2026, 20:59 UTC
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.
osv:CVE-2026-54330
Complete source record
{
"id": "9f4c2541eef164ca2bcc637293a9f3e85337ca5cf7e092d82d31193a7290ab50",
"url": "https://osv.dev/vulnerability/CVE-2026-54330",
"method": "structured",
"payload": {
"kind": "advisory",
"title": "Ceph RGW SigV4 handler accepts unsigned x-amz-* headers on presigned requests, allowing privilege escalation",
"summary": "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.",
"evidence": "osv:CVE-2026-54330",
"products": [],
"severity": "high",
"structured": {
"id": "CVE-2026-54330",
"aliases": [
"BIT-ceph-2026-54330",
"CVE-2026-54330",
"GHSA-rmjq-ffrm-j6vj"
],
"metrics": [
{
"type": "CVSS_V3",
"score": "CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:N"
}
],
"affected": [
{
"ranges": [
{
"repo": "https://github.com/ceph/ceph",
"type": "GIT",
"events": [
{
"introduced": "1680e466aab77cdf9ba07394bea664106580b32b"
},
{
"fixed": "f9fd95b4335bad6a26d7a74468f55d269e8dbef4"
},
{
"introduced": "3d911bce7d6557aa2d1826543a4a4e88981639da"
},
{
"fixed": "7f793731f1b39eb4f465e960113d2363c311b964"
},
{
"fixed": "5837aa8e60471128dbb672b0ff6f1b1feebe08a7"
},
{
"fixed": "5978c866d4a0812fbb024745c4f1e79aaecd6c6a"
}
],
"database_specific": {
"extracted_events": [
{
"range": [
{
"introduced": "19.0.0"
},
{
"fixed": "19.2.6"
}
],
"source": "AFFECTED_FIELD",
"strategy": "StringRangeExpression"
},
{
"range": [
{
"introduced": "20.0.0"
},
{
"fixed": "20.2.4"
}
],
"source": "AFFECTED_FIELD",
"strategy": "StringRangeExpression"
},
{
"range": [
{
"fixed": "5837aa8e60471128dbb672b0ff6f1b1feebe08a7"
}
],
"source": "REFERENCES_COMMIT"
},
{
"range": [
{
"fixed": "5978c866d4a0812fbb024745c4f1e79aaecd6c6a"
}
],
"source": "REFERENCES_COMMIT"
}
]
}
}
],
"versions": [
"v20.2.3",
"v19.2.5",
"v20.2.2-pre.ibm",
"v20.2.1-pre.ibm.0",
"v20.1.0-pre.ibm.2",
"v20.1.0-pre.ibm.1",
"v20.0.0-pre.ibm",
"v19.0.0"
],
"database_specific": {
"source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-54330.json"
}
}
],
"modified": "2026-10-28T02:30:29.615387435Z",
"provider": "osv",
"references": [
"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/54xxx/CVE-2026-54330.json",
"https://github.com/ceph/ceph/security/advisories/GHSA-rmjq-ffrm-j6vj",
"https://nvd.nist.gov/vuln/detail/CVE-2026-54330",
"https://github.com/ceph/ceph/commit/5837aa8e60471128dbb672b0ff6f1b1feebe08a7",
"https://github.com/ceph/ceph/commit/5978c866d4a0812fbb024745c4f1e79aaecd6c6a"
],
"provider_metadata": {
"cwe_ids": [
"CWE-347"
],
"cna_assigner": "GitHub_M",
"osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/54xxx/CVE-2026-54330.json"
}
},
"related_cves": [
{
"value": "CVE-2026-54330",
"evidence": "/id"
}
],
"security_relevant": true,
"severity_evidence": "/severity/0/score"
},
"source_id": "core-osv",
"document_id": 496696,
"published_at": "2026-08-27T20:59:24.688+00:00"
}