[WIP]: Patch ceph for CVE 2025 30156(ceph x authentication bypass) - #18774
Draft
Akhila Guruju (akhila-guruju) wants to merge 5 commits into
Draft
Conversation
|
Azure Pipelines: There may be pipelines that require an authorized user to comment /azp run to run. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Backported Functionality
RFC 8009 AES256-CTS-HMAC-SHA384-192 authenticated encryption.
Random confounders and constant-time HMAC validation.
Per-purpose key derivation for tickets, authorizers, replies, and rotating secrets.
Legacy AES compatibility during migration.
ARM64-safe message signature calculation.
MonMap cipher policy and monitor feature negotiation.
Classic and Crimson ticket/secret invalidation through auth_epoch.
ceph auth rotate --key-type=aes256k.
ceph auth dump-keys.
ceph auth wipe-rotating-service-keys.
ceph mon set auth_{allowed,preferred,service}_cipher.
Authoritative auth-database storage for rotated mon. keys.
ceph-mon --use-mon-keyring emergency recovery.
Larger mount.ceph key buffer.
RFC vector, tamper-rejection, wrong-usage, and legacy-AES tests.
Required Migration
Installing the patch alone does not remove the vulnerability. Operators must:
Upgrade all monitors, then all remaining daemons.
Enable both ciphers:
Rotate mon., mgr., osd., and mds.* keys, distribute returned keyrings, and restart each daemon.
Rotate client keys only after their userspace/kernel clients support aes256k.
Switch rotating service keys:
Confirm no legacy keys remain:
Disable legacy authentication:
Only after the final step is CVE-2025-30156 fully mitigated.
Downstream Changes
OpenSSL 3 with AES-256-CBC-CTS provider support is mandatory.
ceph-authtool and fresh OSD/MonMap creation now default to aes256k.
Older clients and kernels cannot use rotated keys. Upstream kernel support starts with Linux 7.0 unless vendor-backported.
MonMap encoding advances to version 10.
Activating the persistent AES256K monitor feature prevents downgrade to unpatched monitors.
Rotating a key immediately invalidates its old value; all copies must be replaced.
wipe-rotating-service-keys forces ticket and rotating-secret refresh, although established sessions remain active.
Existing crypto APIs remain source-compatible through wrappers, but C++ vtables and CephContext layout change. Rebuild all Ceph binaries and binary plugins.