Description
In the Linux kernel, the following vulnerability has been resolved:

libceph: Avoid using invalid osd indices from primary_temp

A corrupted osdmap received from a Ceph monitor or OSD may contain osd
indices in its pg_temp, primary_temp, pg_upmap, and pg_upmap_items parts
that don't exist, i.e., that are greater than max_osd or smaller than
CEPH_HOMELESS_OSD (-1). These indices are used to create the up and
acting set in ceph_pg_to_up_acting_osds(), called from calc_target().
While most of these osd indices are checked, the one from primary_temp
is not. Subsequently, this may lead to calc_target() returning this
(potentially invalid) index as target osd for a (linger) request.
Because the osd_state, osd_weight, and osd_addr arrays only contain
max_osd entries (with indices 0 to max_osd -1), this leads to
out-of-bounds accesses when trying to read values from these arrays.

This patch fixes the issue by adding a check to get_temp_osds(), so that
only valid osd indices from primary_temp are used, and it falls back to
using the primary from pg_temp or the up set if it is invalid.

[ idryomov: changelog ]
Published: 2026-08-26
Score: n/a
EPSS: n/a
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

A corrupted Ceph–OSD map can contain object storage device (OSD) indices that are outside the valid range. In the vulnerable kernel code the index from the primary_temp list is not checked before being used in calculation of target OSDs. When this invalid index is employed, the kernel performs array accesses past the bounds of the osd_state, osd_weight, and osd_addr structures, which leads to out-of-bounds memory reads. This exposure can leak sensitive kernel data or potentially trigger a crash, but it is not an out‑of‑bounds write and does not directly allow arbitrary code execution according to the information provided.

Affected Systems

The flaw resides purely in the Linux kernel’s Ceph client implementation and applies to any kernel version that incorporates the unpatched Ceph code. No specific version range is listed, implying all kernels before the patch that include the vulnerable Ceph integration may be affected.

Risk and Exploitability

The EPSS score is not available and the vulnerability does not appear in the CISA KEV catalog, indicating no documented exploitation cases yet. The exploit vector would require an attacker able to control or inject a malformed OSD map into the cluster traffic that reaches a vulnerable node. While the bug currently results in reads, the kernel memory corruption could be leveraged in conjunction with other kernel weaknesses to achieve higher privileges if an attacker can trigger additional sensitive operations. The risk level is therefore moderate to high in environments where the Ceph client is exposed to potential manipulation.

Generated by OpenCVE AI on August 26, 2026 at 16:31 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Apply the kernel patch that validates primary_temp indices and prevents out-of-bounds memory reads
  • Verify that Ceph monitors and OSDs serving the host are trusted and that the cluster is configured to reject malformed OSD maps
  • If a kernel upgrade cannot be performed immediately, isolate the affected host from Ceph traffic or disable Ceph client functionality until the patch is applied

Generated by OpenCVE AI on August 26, 2026 at 16:31 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Wed, 26 Aug 2026 17:00:00 +0000

Type Values Removed Values Added
Weaknesses CWE-119

Wed, 26 Aug 2026 14:45:00 +0000

Type Values Removed Values Added
Description In the Linux kernel, the following vulnerability has been resolved: libceph: Avoid using invalid osd indices from primary_temp A corrupted osdmap received from a Ceph monitor or OSD may contain osd indices in its pg_temp, primary_temp, pg_upmap, and pg_upmap_items parts that don't exist, i.e., that are greater than max_osd or smaller than CEPH_HOMELESS_OSD (-1). These indices are used to create the up and acting set in ceph_pg_to_up_acting_osds(), called from calc_target(). While most of these osd indices are checked, the one from primary_temp is not. Subsequently, this may lead to calc_target() returning this (potentially invalid) index as target osd for a (linger) request. Because the osd_state, osd_weight, and osd_addr arrays only contain max_osd entries (with indices 0 to max_osd -1), this leads to out-of-bounds accesses when trying to read values from these arrays. This patch fixes the issue by adding a check to get_temp_osds(), so that only valid osd indices from primary_temp are used, and it falls back to using the primary from pg_temp or the up set if it is invalid. [ idryomov: changelog ]
Title libceph: Avoid using invalid osd indices from primary_temp
First Time appeared Linux
Linux linux Kernel
CPEs cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
Vendors & Products Linux
Linux linux Kernel
References

Subscriptions

Linux Linux Kernel
cve-icon MITRE

Status: PUBLISHED

Assigner: Linux

Published:

Updated: 2026-08-26T14:37:24.768Z

Reserved: 2026-08-26T14:34:25.767Z

Link: CVE-2026-80558

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

Published: 2026-08-26T15:17:10.530

Modified: 2026-08-26T15:17:10.530

Link: CVE-2026-80558

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-08-26T17:30:09Z

Weaknesses
  • CWE-119

    Improper Restriction of Operations within the Bounds of a Memory Buffer