---
id: CVE-2026-52958
title: |-
  In the Linux kernel, the following vulnerability has been resolved:

  libceph: Fix potential out-of-bounds access in osdmap_decode()

  When decoding osd_state and osd_weight from an incoming osdmap in
  osdmap_decode(), both are decoded for …
summary: |-
  In the Linux kernel, the following vulnerability has been resolved:

  libceph: Fix potential out-of-bounds access in osdmap_decode()

  When decoding osd_state and osd_weight from an incoming osdmap in
  osdmap_decode(), both are decoded for …
severity: critical
cvss: 9.1
cvssVector: 'CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:H'
published: '2026-06-24'
updated: '2026-07-10'
source: NVD
sourceUrl: 'https://nvd.nist.gov/vuln/detail/CVE-2026-52958'
references:
  - url: 'https://git.kernel.org/stable/c/0d2dd7e6bb74fd7712aa73457a4a821906c6863a'
    label: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
  - url: 'https://git.kernel.org/stable/c/35d0ed82d03e5ee77ea4f31f20e29562a7721649'
    label: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
  - url: 'https://git.kernel.org/stable/c/36a79759a288961b1ff28a68ec2d1f56f6848098'
    label: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
  - url: 'https://git.kernel.org/stable/c/3f2575bb7f955d42569d96c3e04fa958a0dcf4b4'
    label: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
  - url: 'https://git.kernel.org/stable/c/48df98d12b15360cd56af5c1f460307b340c1197'
    label: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
  - url: 'https://git.kernel.org/stable/c/8713bbc4b2b9ad78f803978e54b7e49dd21bd9be'
    label: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
  - url: 'https://git.kernel.org/stable/c/e7187f33c02488697ec0d01d82bf7a3f8deaba8f'
    label: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
  - url: 'https://git.kernel.org/stable/c/ee933694645dac062d65fc2743f92bc06fa0db6b'
    label: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
tags:
  - nvd
epss: 0.00735
epssPercentile: 0.52483
ingestedAt: '2026-07-11T13:13:24.906Z'
---

## Overview

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

libceph: Fix potential out-of-bounds access in osdmap_decode()

When decoding osd_state and osd_weight from an incoming osdmap in
osdmap_decode(), both are decoded for each osd, i.e., map->max_osd
times. The ceph_decode_need() check only accounts for
sizeof(*map->osd_weight) once. This can potentially result in an
out-of-bounds memory access if the incoming message is corrupted such
that the max_osd value exceeds the actual content of the osdmap message.

This patch fixes the issue by changing the corresponding part in the
ceph_decode_need() check to account for
map->max_osd*sizeof(*map->osd_weight).

## Remediation

Refer to the linked advisories for vendor-supplied fixes and affected version ranges.
