CVE-2026-52957 (GCVE-0-2026-52957)
Vulnerability from cvelistv5
Published
2026-06-24 16:28
Modified
2026-08-05 12:32
Summary
In the Linux kernel, the following vulnerability has been resolved: libceph: Fix potential null-ptr-deref in decode_choose_args() A message of type CEPH_MSG_OSD_MAP contains an OSD map that itself contains a CRUSH map. When decoding this CRUSH map in crush_decode(), an array of max_buckets CRUSH buckets is decoded, where some indices may not refer to actual buckets and are therefore set to NULL. The received CRUSH map may optionally contain choose_args that get decoded in decode_choose_args(). When decoding a crush_choose_arg_map, a series of choose_args for different buckets is decoded, with the bucket_index being read from the incoming message. It is only checked that the bucket index does not exceed max_buckets, but not that it doesn't point to an index with a NULL bucket. If a (potentially corrupted) message contains a crush_choose_arg_map including such a bucket_index, a null pointer dereference may occur in the subsequent processing when attempting to access the bucket with the given index. This patch fixes the issue by extending the affected check. Now, it is only attempted to access the bucket if it is not NULL.
Impacted products
Vendor Product Version
Linux Linux Version: c7ed1a4bf4b446317eefa0f4916d94b1f6d3ada5
Version: c7ed1a4bf4b446317eefa0f4916d94b1f6d3ada5
Version: c7ed1a4bf4b446317eefa0f4916d94b1f6d3ada5
Version: c7ed1a4bf4b446317eefa0f4916d94b1f6d3ada5
Version: c7ed1a4bf4b446317eefa0f4916d94b1f6d3ada5
Version: c7ed1a4bf4b446317eefa0f4916d94b1f6d3ada5
Version: c7ed1a4bf4b446317eefa0f4916d94b1f6d3ada5
Version: c7ed1a4bf4b446317eefa0f4916d94b1f6d3ada5
Create a notification for this product.
Show details on NVD website


{
  "containers": {
    "cna": {
      "affected": [
        {
          "defaultStatus": "unaffected",
          "product": "Linux",
          "programFiles": [
            "net/ceph/osdmap.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "lessThan": "d55ffad8d422b5d1cc44dad32bd3d25f4471cd9f",
              "status": "affected",
              "version": "c7ed1a4bf4b446317eefa0f4916d94b1f6d3ada5",
              "versionType": "git"
            },
            {
              "lessThan": "301286c0ccd37d66b0e40786fd35a4f19cdbd88a",
              "status": "affected",
              "version": "c7ed1a4bf4b446317eefa0f4916d94b1f6d3ada5",
              "versionType": "git"
            },
            {
              "lessThan": "7169f326a23d0f547fcd90e68b72fd387622e126",
              "status": "affected",
              "version": "c7ed1a4bf4b446317eefa0f4916d94b1f6d3ada5",
              "versionType": "git"
            },
            {
              "lessThan": "d7a65a34d2453f8cd3e0cc0e1319740af7e24276",
              "status": "affected",
              "version": "c7ed1a4bf4b446317eefa0f4916d94b1f6d3ada5",
              "versionType": "git"
            },
            {
              "lessThan": "312ec973efac0efb9b9ed64214235910e9ecbaa8",
              "status": "affected",
              "version": "c7ed1a4bf4b446317eefa0f4916d94b1f6d3ada5",
              "versionType": "git"
            },
            {
              "lessThan": "f2f95e6d4b97e70bb876139b0583fc8079983f85",
              "status": "affected",
              "version": "c7ed1a4bf4b446317eefa0f4916d94b1f6d3ada5",
              "versionType": "git"
            },
            {
              "lessThan": "a20e16ebfe2fa65348eb4b2dc7deac330ce03e9c",
              "status": "affected",
              "version": "c7ed1a4bf4b446317eefa0f4916d94b1f6d3ada5",
              "versionType": "git"
            },
            {
              "lessThan": "28b0a2ab8c82d0bbdeb8013029c67c978ce6e4bf",
              "status": "affected",
              "version": "c7ed1a4bf4b446317eefa0f4916d94b1f6d3ada5",
              "versionType": "git"
            }
          ]
        },
        {
          "defaultStatus": "affected",
          "product": "Linux",
          "programFiles": [
            "net/ceph/osdmap.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "status": "affected",
              "version": "4.13"
            },
            {
              "lessThan": "4.13",
              "status": "unaffected",
              "version": "0",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "5.10.*",
              "status": "unaffected",
              "version": "5.10.258",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "5.15.*",
              "status": "unaffected",
              "version": "5.15.209",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.1.*",
              "status": "unaffected",
              "version": "6.1.175",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.6.*",
              "status": "unaffected",
              "version": "6.6.141",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.12.*",
              "status": "unaffected",
              "version": "6.12.91",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.18.*",
              "status": "unaffected",
              "version": "6.18.33",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "7.0.*",
              "status": "unaffected",
              "version": "7.0.10",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "*",
              "status": "unaffected",
              "version": "7.1",
              "versionType": "original_commit_for_fix"
            }
          ]
        }
      ],
      "cpeApplicability": [
        {
          "nodes": [
            {
              "cpeMatch": [
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "5.10.258",
                  "versionStartIncluding": "4.13",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "5.15.209",
                  "versionStartIncluding": "4.13",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.1.175",
                  "versionStartIncluding": "4.13",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.6.141",
                  "versionStartIncluding": "4.13",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.12.91",
                  "versionStartIncluding": "4.13",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.18.33",
                  "versionStartIncluding": "4.13",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "7.0.10",
                  "versionStartIncluding": "4.13",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "7.1",
                  "versionStartIncluding": "4.13",
                  "vulnerable": true
                }
              ],
              "negate": false,
              "operator": "OR"
            }
          ]
        }
      ],
      "descriptions": [
        {
          "lang": "en",
          "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nlibceph: Fix potential null-ptr-deref in decode_choose_args()\n\nA message of type CEPH_MSG_OSD_MAP contains an OSD map that itself\ncontains a CRUSH map. When decoding this CRUSH map in crush_decode(), an\narray of max_buckets CRUSH buckets is decoded, where some indices may\nnot refer to actual buckets and are therefore set to NULL. The received\nCRUSH map may optionally contain choose_args that get decoded in\ndecode_choose_args(). When decoding a crush_choose_arg_map, a series of\nchoose_args for different buckets is decoded, with the bucket_index\nbeing read from the incoming message. It is only checked that the bucket\nindex does not exceed max_buckets, but not that it doesn\u0027t point to an\nindex with a NULL bucket. If a (potentially corrupted) message contains\na crush_choose_arg_map including such a bucket_index, a null pointer\ndereference may occur in the subsequent processing when attempting to\naccess the bucket with the given index.\n\nThis patch fixes the issue by extending the affected check. Now, it is\nonly attempted to access the bucket if it is not NULL."
        }
      ],
      "metrics": [
        {
          "cvssV3_1": {
            "baseScore": 7.5,
            "baseSeverity": "HIGH",
            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H",
            "version": "3.1"
          },
          "scenarios": [
            {
              "lang": "en",
              "value": "AV:N - CEPH_MSG_OSD_MAP is received over Ceph monitor or OSD network connections and decoded by the kernel client. The vulnerable path is network message processing: messenger receive -\u003e ceph_osdc_handle_map() -\u003e ceph_osdmap_decode()/osdmap_apply_incremental() -\u003e crush_decode() -\u003e decode_choose_args().\nAC:L - The attacker-controlled map can directly select a bucket_index within max_buckets whose bucket slot was decoded as NULL and set ids_size nonzero. No race or condition outside the sending peer\u0027s control is required.\nPR:N - The message must pass the established Ceph connection/authentication and FSID gates, but a malicious or compromised Ceph peer needs no privileges on the vulnerable Linux system. Auth-none deployments and attacker-controlled Ceph peers make PR:N the highest defensible choice.\nUI:N - Once the kernel client is connected to the Ceph cluster, OSD map updates are processed asynchronously without a user opening a file or performing another action. A malicious peer can send the malformed map as normal cluster traffic.\nS:U - The impact is within the same vulnerable kernel security authority. This is not a VM escape, IOMMU bypass, or cross-scope sandbox escape.\nC:N - The bug is a NULL pointer dereference while reading c-\u003ebuckets[bucket_index]-\u003esize. It does not provide a data disclosure primitive.\nI:N - The vulnerable operation is not a write, UAF, type confusion, or controllable memory corruption. No integrity impact is supported beyond crashing the kernel.\nA:H - Dereferencing the NULL bucket pointer can trigger a kernel oops or panic while processing a malformed OSD/CRUSH map. That is a high availability impact."
            }
          ]
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2026-08-05T12:32:07.425Z",
        "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "shortName": "Linux"
      },
      "references": [
        {
          "url": "https://git.kernel.org/stable/c/d55ffad8d422b5d1cc44dad32bd3d25f4471cd9f"
        },
        {
          "url": "https://git.kernel.org/stable/c/301286c0ccd37d66b0e40786fd35a4f19cdbd88a"
        },
        {
          "url": "https://git.kernel.org/stable/c/7169f326a23d0f547fcd90e68b72fd387622e126"
        },
        {
          "url": "https://git.kernel.org/stable/c/d7a65a34d2453f8cd3e0cc0e1319740af7e24276"
        },
        {
          "url": "https://git.kernel.org/stable/c/312ec973efac0efb9b9ed64214235910e9ecbaa8"
        },
        {
          "url": "https://git.kernel.org/stable/c/f2f95e6d4b97e70bb876139b0583fc8079983f85"
        },
        {
          "url": "https://git.kernel.org/stable/c/a20e16ebfe2fa65348eb4b2dc7deac330ce03e9c"
        },
        {
          "url": "https://git.kernel.org/stable/c/28b0a2ab8c82d0bbdeb8013029c67c978ce6e4bf"
        }
      ],
      "title": "libceph: Fix potential null-ptr-deref in decode_choose_args()",
      "x_generator": {
        "engine": "bippy-1.2.0"
      }
    }
  },
  "cveMetadata": {
    "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
    "assignerShortName": "Linux",
    "cveId": "CVE-2026-52957",
    "datePublished": "2026-06-24T16:28:39.066Z",
    "dateReserved": "2026-06-09T07:44:35.373Z",
    "dateUpdated": "2026-08-05T12:32:07.425Z",
    "state": "PUBLISHED"
  },
  "dataType": "CVE_RECORD",
  "dataVersion": "5.2"
}


Log in or create an account to share your comment.




Tags
Taxonomy of the tags.


Loading…

Loading…

Loading…

Sightings

Author Source Type Date

Nomenclature

  • Seen: The vulnerability was mentioned, discussed, or seen somewhere by the user.
  • Confirmed: The vulnerability is confirmed from an analyst perspective.
  • Published Proof of Concept: A public proof of concept is available for this vulnerability.
  • Exploited: This vulnerability was exploited and seen by the user reporting the sighting.
  • Patched: This vulnerability was successfully patched by the user reporting the sighting.
  • Not exploited: This vulnerability was not exploited or seen by the user reporting the sighting.
  • Not confirmed: The user expresses doubt about the veracity of the vulnerability.
  • Not patched: This vulnerability was not successfully patched by the user reporting the sighting.


Loading…

Loading…