CVE-2025-30156: Ceph: AES-CBC misuse in CephX and RADOSGW enables authentication bypass and credential forgery
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 CephX authentication protocol encrypts tickets with AES-128-CBC in an unauthenticated mode that uses a hard-coded initialization vector and no message authentication, allowing an attacker to forge credentials and gain cluster-wide access. Because the ciphertext is malleable and the monitor will encrypt attacker-chosen entity names, an attacker holding one low-privilege key and able to observe CephX traffic can use the monitor as an encryption oracle and splice ciphertext blocks into valid tickets for privileged entities such as Manager, MDS, and OSD. The same lack of authentication also lets an attacker with CephX permissions escalate privileges by flipping a single bit in a service ticket to set its allowall field to true. 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 (CephX)to a version that resolves this vulnerability.Fixed in 20.2.4 - Upgrade
Upgrade
Ceph (CephX)to a version that resolves this vulnerability.Fixed in 19.2.6
Event History
Frequently Asked Questions
Which environments are exposed to credential forgery and cluster-wide compromise?
Ceph deployments running versions earlier than 20.2.4 or 19.2.6 are affected. An attacker needs a low-privilege CephX key and the ability to observe CephX traffic, then can use the monitor as an encryption oracle to forge tickets for privileged entities including Manager, MDS, and OSD.
Can a user with existing CephX access escalate privileges without forging a privileged entity ticket?
Yes. An attacker with CephX permissions can modify a service ticket by flipping one bit to set its allow_all field to true, escalating the ticket's privileges.
What versions contain the fix?
Upgrade to Ceph 20.2.4 or 19.2.6. Versions prior to those releases use unauthenticated AES-128-CBC ticket encryption with a hard-coded initialization vector.