libceph: Fix potential out-of-bounds access in crush_decode()
A message of type CEPH_MSG_OSD_MAP containing a crush map with at least
one bucket has two fields holding the bucket algorithm. If the values
in these two fields differ, an out-of-bounds access can occur. This is
the case because the first algorithm field (alg) is used to allocate
the correct amount of memory for a bucket of this type, while the second
algorithm field inside the bucket (b->alg) is used in the subsequent
processing.
This patch fixes the issue by adding a check that compares alg and
b->alg and aborts the processing in case they differ. Furthermore,
b->alg is set to 0 in this case, because the destruction of the crush
map also uses this field to determine the bucket type, which can again
result in an out-of-bounds access when trying to free the memory pointed
to by the fields of the bucket. To correctly free the memory allocated
for the bucket in such a case, the corresponding call to kfree is moved
from the algorithm-specific crush_destroy_bucket functions to the
generic crush_destroy_bucket().
| Source | ID | Title |
|---|---|---|
Debian DLA |
DLA-4664-1 | linux security update |
Debian DLA |
DLA-4665-1 | linux security update |
Debian DLA |
DLA-4671-1 | linux-6.1 security update |
Ubuntu USN |
USN-8566-1 | Linux kernel vulnerabilities |
Ubuntu USN |
USN-8567-1 | Linux kernel vulnerabilities |
Ubuntu USN |
USN-8568-1 | Linux kernel (OEM) vulnerabilities |
Ubuntu USN |
USN-8569-1 | Linux kernel (HWE) vulnerabilities |
Ubuntu USN |
USN-8574-1 | Linux kernel (GCP FIPS) vulnerabilities |
Ubuntu USN |
USN-8575-1 | Linux kernel vulnerabilities |
Ubuntu USN |
USN-8576-1 | Linux kernel (NVIDIA Tegra) vulnerabilities |
Ubuntu USN |
USN-8593-1 | Linux kernel vulnerabilities |
Ubuntu USN |
USN-8574-2 | Linux kernel vulnerabilities |
Ubuntu USN |
USN-8595-1 | Linux kernel (Oracle) vulnerabilities |
Ubuntu USN |
USN-8596-1 | Linux kernel (NVIDIA) vulnerabilities |
Ubuntu USN |
USN-8575-2 | Linux kernel vulnerabilities |
Ubuntu USN |
USN-8576-2 | Linux kernel (NVIDIA Tegra) vulnerabilities |
Ubuntu USN |
USN-8575-3 | Linux kernel vulnerabilities |
Ubuntu USN |
USN-8595-2 | Linux kernel (AWS) vulnerabilities |
Ubuntu USN |
USN-8603-1 | Linux kernel (Azure) vulnerabilities |
Ubuntu USN |
USN-8606-1 | Linux kernel (Azure) vulnerabilities |
Ubuntu USN |
USN-8607-1 | Linux kernel (Azure CVM) vulnerabilities |
Ubuntu USN |
USN-8608-1 | Linux kernel (Azure FIPS) vulnerabilities |
Ubuntu USN |
USN-8609-1 | Linux kernel (Azure CVM) vulnerabilities |
Ubuntu USN |
USN-8610-1 | Linux kernel (Azure CVM) vulnerabilities |
Solution
No solution given by the vendor.
Workaround
No workaround given by the vendor.
Sun, 28 Jun 2026 08:00:00 +0000
| Type | Values Removed | Values Added |
|---|---|---|
| Metrics |
cvssV3_1
|
cvssV3_1
|
Fri, 26 Jun 2026 03:00:00 +0000
| Type | Values Removed | Values Added |
|---|---|---|
| Weaknesses | CWE-119 |
Fri, 26 Jun 2026 00:15:00 +0000
| Type | Values Removed | Values Added |
|---|---|---|
| Weaknesses | CWE-131 | |
| References |
| |
| Metrics |
threat_severity
|
cvssV3_1
|
Wed, 24 Jun 2026 19:30:00 +0000
| Type | Values Removed | Values Added |
|---|---|---|
| Weaknesses | CWE-119 |
Wed, 24 Jun 2026 17:15:00 +0000
| Type | Values Removed | Values Added |
|---|---|---|
| Description | In the Linux kernel, the following vulnerability has been resolved: libceph: Fix potential out-of-bounds access in crush_decode() A message of type CEPH_MSG_OSD_MAP containing a crush map with at least one bucket has two fields holding the bucket algorithm. If the values in these two fields differ, an out-of-bounds access can occur. This is the case because the first algorithm field (alg) is used to allocate the correct amount of memory for a bucket of this type, while the second algorithm field inside the bucket (b->alg) is used in the subsequent processing. This patch fixes the issue by adding a check that compares alg and b->alg and aborts the processing in case they differ. Furthermore, b->alg is set to 0 in this case, because the destruction of the crush map also uses this field to determine the bucket type, which can again result in an out-of-bounds access when trying to free the memory pointed to by the fields of the bucket. To correctly free the memory allocated for the bucket in such a case, the corresponding call to kfree is moved from the algorithm-specific crush_destroy_bucket functions to the generic crush_destroy_bucket(). | |
| Title | libceph: Fix potential out-of-bounds access in crush_decode() | |
| First Time appeared |
Linux
Linux linux Kernel |
|
| CPEs | cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | |
| Vendors & Products |
Linux
Linux linux Kernel |
|
| References |
|
|
Projects
Sign in to view the affected projects.
Status: PUBLISHED
Assigner: Linux
Published:
Updated: 2026-07-15T00:45:47.779Z
Reserved: 2026-06-09T07:44:35.373Z
Link: CVE-2026-52955
No data.
No data.
OpenCVE Enrichment
Updated: 2026-06-28T13:45:06Z
Debian DLA
Ubuntu USN