CVE-2026-80558

libceph: Avoid using invalid osd indices from primary_temp

State
Published
Severity
9.8 Critical
Published
Aug 26, 2026
Updated
Oct 16, 2026
Reserved
Aug 26, 2026

Read the record on cve.org

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 ]

Scores

CVSSScoreVectorSource
3.19.8 CriticalCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:HLinux

Weaknesses

The record names no weakness.

Affected Products

ProductVersions
LinuxLinux
  • 5e8d4d36bf23bb7baf027c479d54395840219928 to before 505fc50b8ff8e687b7e3ef6866269dea27366224Affected
  • 5e8d4d36bf23bb7baf027c479d54395840219928 to before 1c705fe8e59c6b16f48964973fb23c8ec4735b73Affected
  • 5e8d4d36bf23bb7baf027c479d54395840219928 to before dfe1877d351b99eb1b1a62a3fc2d174220e88e20Affected
  • 5e8d4d36bf23bb7baf027c479d54395840219928 to before e2ffeec85201b2bb748e99e12539ee1b92f62796Affected
  • 5e8d4d36bf23bb7baf027c479d54395840219928 to before 6799d4a916ffcb3d450d8440f9fe0f0862f768d6Affected
  • 5e8d4d36bf23bb7baf027c479d54395840219928 to before 4f392fec075562dc93bb0c69f37423ca2af9b48fAffected
  • 5e8d4d36bf23bb7baf027c479d54395840219928 to before e009c5f0ad634c62f5c48a41f1f3c019ecf52555Affected
  • 5e8d4d36bf23bb7baf027c479d54395840219928 to before 3660b98d1204b419f6a77e9a295f148dcf38d042Affected
LinuxLinux
  • 3.15Affected
  • before 3.15Not affected
  • 5.10.266 through 5.10.*Not affected
  • 5.15.217 through 5.15.*Not affected
  • 6.1.184 through 6.1.*Not affected
  • 6.6.153 through 6.6.*Not affected
  • 6.12.105 through 6.12.*Not affected
  • 6.18.46 through 6.18.*Not affected
  • 7.1.10 through 7.1.*Not affected
  • 7.2 and laterNot affected

References

Every record here comes from the CVE Program’s CVE List. © 1999–2026 The MITRE Corporation. CVE is a registered trademark of The MITRE Corporation. The records are reproduced under the CVE Program terms of use.