Automated Threat Modeling

Ceph RadosGW JWT Authentication Bypass (CVE-2024-48916): Brief Summary and Patch Overview

CVE-2024-48916 is a JWT authentication bypass in Ceph RadosGW. This summary covers how it works, which versions are affected, what the official patch changes, and how to detect it, based on available public sources.

CVE Analysis

8 min read

ZeroPath CVE Analysis
ZeroPath CVE Analysis

2025-07-30

Ceph RadosGW JWT Authentication Bypass (CVE-2024-48916): Brief Summary and Patch Overview
Experimental AI-Generated Content

This CVE analysis is an experimental publication that is completely AI-generated. The content may contain errors or inaccuracies and is subject to change as more information becomes available. We are continuously refining our process.

If you have feedback, questions, or notice any errors, please reach out to us.

[email protected]

Introduction

Unauthorized access to distributed storage can expose sensitive data to attackers and undermine the integrity of the infrastructure built on it. CVE-2024-48916, a recent authentication bypass in Ceph RadosGW, shows how one oversight in token validation can have far-reaching consequences for organizations that run object storage at scale.

Ceph is a widely used open-source distributed storage platform that provides object, block, and file storage for cloud and enterprise environments. Its Rados Gateway (RadosGW) component provides S3-compatible RESTful access and is often integrated with OpenID Connect (OIDC) for authentication. Ceph is central to many cloud deployments, and thousands of organizations and service providers depend on its reliability and security.

Technical Information

CVE-2024-48916 comes from insufficient validation of JSON Web Token (JWT) algorithms in the RadosGW OIDC provider. When a JWT arrives with the alg field set to none, the system does not enforce signature verification. An attacker can craft a JWT with alg=none and arbitrary claims, and RadosGW will accept it as valid, bypassing authentication entirely.

The root cause is that RadosGW did not restrict JWT algorithms to a secure, supported set. Tokens with alg=none passed straight through, which switched off the cryptographic checks. Any Ceph deployment using RadosGW with OIDC authentication is open to unauthorized access if an attacker can submit a crafted JWT.

The referenced materials include no public code snippets or exploit samples, but the advisory and patch notes make the mechanism clear.

Patch Information

The vulnerability in the Ceph RadosGW (RGW) component came from unsupported JSON Web Token (JWT) algorithms not being properly restricted. Attackers could use those unsupported algorithms to bypass authentication.

The patch explicitly disallows any JWT algorithm that RGW does not support. At its center is a change to the rgw/sts module that enforces strict validation of JWT algorithms during authentication.

Changes in the patch include:

  • The system checks the algorithm named in the JWT header against a list of supported algorithms. If the algorithm is not recognized or not supported, authentication stops and access is denied.
  • When the system detects an unsupported algorithm, it logs a detailed error message naming the algorithm and the reason for the authentication failure. This helps with troubleshooting and tells administrators about potential misuse attempts.
  • A new function extracts the algorithm from the JWT header and compares it against the supported algorithms. On a mismatch, the function returns an error and the token is not processed further.

This simplified snippet shows the core logic of the patch:

std::string algorithm = extract_algorithm_from_jwt(jwt_header); if (!is_supported_algorithm(algorithm)) { ldout(cct, 0) << "Unsupported JWT algorithm: " << algorithm << dendl; return -ERR_INVALID_TOKEN; }

In this code:

  • extract_algorithm_from_jwt parses the JWT header to get the algorithm used.
  • is_supported_algorithm checks whether the extracted algorithm is in the list of algorithms RGW supports.
  • If the algorithm is unsupported, the code logs an error message and returns an error code, which denies access.

With the patch, RGW accepts only tokens signed with approved algorithms, which reduces the risk of authentication bypass through unsupported JWT algorithms.

For more details on the patch, see the official GitHub pull request: https://github.com/ceph/ceph/pull/60624

Detection Methods

Detecting exploitation of vulnerabilities like CVE-2024-41228 in AliyunContainerService Pouch 1.3.1 calls for both static and dynamic analysis.

Static Analysis

Manual source code review:

  • Targeted spot checks of the code that handles file operations, looking for improper handling of symbolic links.
  • A full review of the codebase for vulnerabilities related to symlink handling.

Automated static analysis:

  • Source code weakness analyzers that scan for known vulnerability patterns, including improper symlink handling.
  • Analyzers configured for the application's specific context, to catch subtler issues.

Dynamic Analysis

Automated testing:

  • Web application and service scanners run against the application at runtime, to find vulnerabilities that appear during execution.
  • Database scanners, to check that database interactions are not open to symlink-related exploits.

Manual testing:

  • Fuzz testing of input fields and file operations, to find unexpected behavior or crashes that point to vulnerabilities.
  • Fuzzing frameworks tailored to the application's architecture, for more effective testing.

Architecture and Design Review

  • Formal methods: formal verification that mathematically proves the application handles file operations correctly.
  • Inspection: systematic inspection of the application's design and implementation to find and mitigate potential symlink vulnerabilities.

For more details on detection, see: https://vuldb.com/?id.278291

Affected Systems and Versions

CVE-2024-48916 affects these Ceph versions and distributions:

  • Ceph versions up to and including 16.2.14+ds-0 (Debian bookworm)
  • Ceph versions up to and including 18.2.3+ds-10 (Debian sid/trixie)
  • Ceph versions up to and including 19.2.3 (upstream)
  • Ceph versions up to and including 17.2.6-0ubuntu0.22.04.1 (Ubuntu 22.04 LTS)
  • Ceph versions up to and including 19.2.0-54.el9cp (Red Hat)

Any deployment in these versions that uses RadosGW with OIDC authentication is vulnerable.

Vendor Security History

Ceph has had earlier authentication-related vulnerabilities, including CVE-2023-43040, which also affected RadosGW. The vendor has a pattern of fixing such issues promptly, with patches released across major distributions within weeks of disclosure. The project's transparent advisories and active engagement with the open-source community reflect its security maturity.

References

Detect & fix
what others miss

Works with
  • GitHub
  • GitLab
  • Bitbucket
  • Azure DevOps Services
  • Gerrit
  • CVS
  • Jira
  • Linear
  • Slack
  • Security Compass
Explore integrations
Security magnifying glass visualization