CVE-2026-52954
libceph: handle rbtree insertion error in decode_choose_args()
Description
In the Linux kernel, the following vulnerability has been resolved: libceph: handle rbtree insertion error in decode_choose_args() A message of type CEPH_MSG_OSD_MAP contains an OSD map that itself contains a CRUSH map. The received CRUSH map may optionally contain choose_args that get decoded in decode_choose_args(). In this function, num_choose_arg_maps is read from the message, and a corresponding number of crush_choose_arg_maps gets decoded afterwards. Each crush_choose_arg_map has a choose_args_index, which serves as the key when inserting it into the choose_args rbtree of the decoded crush_map. If a (potentially corrupted) message contains two crush_choose_arg_maps with the same index, the assertion in insert_choose_arg_map() triggers a kernel BUG when trying to insert the second crush_choose_arg_map. This patch fixes the issue by switching to the non-asserting rbtree insertion function and rejecting the message if the insertion fails. [ idryomov: changelog ]
INFO
Published Date :
June 24, 2026, 5:17 p.m.
Last Modified :
July 14, 2026, 4:45 p.m.
Remotely Exploit :
Yes !
Source :
416baaa9-dc9f-4396-8d5f-8c081fb06d67
CVSS Scores
| Score | Version | Severity | Vector | Exploitability Score | Impact Score | Source |
|---|---|---|---|---|---|---|
| CVSS 3.1 | HIGH | 416baaa9-dc9f-4396-8d5f-8c081fb06d67 |
Solution
- Update the Linux kernel.
- Apply the provided patch.
- Reject messages with duplicate choose_args indices.
References to Advisories, Solutions, and Tools
Here, you will find a curated list of external links that provide in-depth
information, practical solutions, and valuable tools related to
CVE-2026-52954.
CWE - Common Weakness Enumeration
While CVE identifies
specific instances of vulnerabilities, CWE categorizes the common flaws or
weaknesses that can lead to vulnerabilities. CVE-2026-52954 is
associated with the following CWEs:
Common Attack Pattern Enumeration and Classification (CAPEC)
Common Attack Pattern Enumeration and Classification
(CAPEC)
stores attack patterns, which are descriptions of the common attributes and
approaches employed by adversaries to exploit the CVE-2026-52954
weaknesses.
We scan GitHub repositories to detect new proof-of-concept exploits. Following list is a collection of public exploits and proof-of-concepts, which have been published on GitHub (sorted by the most recently updated).
Results are limited to the first 15 repositories due to potential performance issues.
The following list is the news that have been mention
CVE-2026-52954 vulnerability anywhere in the article.
The following table lists the changes that have been made to the
CVE-2026-52954 vulnerability over time.
Vulnerability history details can be useful for understanding the evolution of a vulnerability, and for identifying the most recent changes that may impact the vulnerability's severity, exploitability, or other characteristics.
-
Initial Analysis by [email protected]
Jul. 14, 2026
Action Type Old Value New Value Added CWE CWE-617 Added CPE Configuration OR *cpe:2.3:o:linux:linux_kernel:7.1:rc1:*:*:*:*:*:* *cpe:2.3:o:linux:linux_kernel:7.1:rc2:*:*:*:*:*:* *cpe:2.3:o:linux:linux_kernel:7.1:rc3:*:*:*:*:*:* *cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* versions from (including) 6.2 up to (excluding) 6.6.141 *cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* versions from (including) 6.7 up to (excluding) 6.12.91 *cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* versions from (including) 6.13 up to (excluding) 6.18.33 *cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* versions from (including) 6.19 up to (excluding) 7.0.10 *cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* versions from (including) 5.16 up to (excluding) 6.1.175 *cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* versions from (including) 5.11 up to (excluding) 5.15.209 *cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* versions from (including) 4.13 up to (excluding) 5.10.258 Added Reference Type kernel.org: https://git.kernel.org/stable/c/0a1265a9ab875f92b6a3ffb497404f46cf9d76a3 Types: Patch Added Reference Type kernel.org: https://git.kernel.org/stable/c/0b6a3bcb91bc5bfeda39f0df3b71bab62c13e9da Types: Patch Added Reference Type kernel.org: https://git.kernel.org/stable/c/4d2b37abda9536808655830d683dc491d31741a8 Types: Patch Added Reference Type kernel.org: https://git.kernel.org/stable/c/534ebc08df97c47d4c7596f336fa31ecbf91519c Types: Patch Added Reference Type kernel.org: https://git.kernel.org/stable/c/80c73bd1b2b04355d1d0c29be8ccbd25a380905d Types: Patch Added Reference Type kernel.org: https://git.kernel.org/stable/c/c7bf7864e2924fa5508ac270b0e9364bc13d5a6c Types: Patch Added Reference Type kernel.org: https://git.kernel.org/stable/c/d289478cfc0bcf81c7914200d6abdcb78bd04ded Types: Patch Added Reference Type kernel.org: https://git.kernel.org/stable/c/f47430fc1f815e87406e2d3b4e476eff1bc7fd9b Types: Patch -
CVE Modified by 416baaa9-dc9f-4396-8d5f-8c081fb06d67
Jun. 29, 2026
Action Type Old Value New Value Changed Affected [{'repo': 'https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git', 'vendor': 'Linux', 'product': 'Linux', 'versions': [{'status': 'affected', 'version': '1da177e4c3f41524e886b7f1b8a0c1fc7321cac2', 'lessThan': 'c7bf7864e2924fa5508ac270b0e9364bc13d5a6c', 'versionType': 'git'}, {'status': 'affected', 'version': '1da177e4c3f41524e886b7f1b8a0c1fc7321cac2', 'lessThan': 'f47430fc1f815e87406e2d3b4e476eff1bc7fd9b', 'versionType': 'git'}, {'status': 'affected', 'version': '1da177e4c3f41524e886b7f1b8a0c1fc7321cac2', 'lessThan': '0b6a3bcb91bc5bfeda39f0df3b71bab62c13e9da', 'versionType': 'git'}, {'status': 'affected', 'version': '1da177e4c3f41524e886b7f1b8a0c1fc7321cac2', 'lessThan': '534ebc08df97c47d4c7596f336fa31ecbf91519c', 'versionType': 'git'}, {'status': 'affected', 'version': '1da177e4c3f41524e886b7f1b8a0c1fc7321cac2', 'lessThan': '80c73bd1b2b04355d1d0c29be8ccbd25a380905d', 'versionType': 'git'}, {'status': 'affected', 'version': '1da177e4c3f41524e886b7f1b8a0c1fc7321cac2', 'lessThan': '4d2b37abda9536808655830d683dc491d31741a8', 'versionType': 'git'}, {'status': 'affected', 'version': '1da177e4c3f41524e886b7f1b8a0c1fc7321cac2', 'lessThan': '0a1265a9ab875f92b6a3ffb497404f46cf9d76a3', 'versionType': 'git'}, {'status': 'affected', 'version': '1da177e4c3f41524e886b7f1b8a0c1fc7321cac2', 'lessThan': 'd289478cfc0bcf81c7914200d6abdcb78bd04ded', 'versionType': 'git'}, {'status': 'affected', 'version': '0', 'lessThan': '5.10.258', 'versionType': 'semver'}, {'status': 'affected', 'version': '0', 'lessThan': '5.15.209', 'versionType': 'semver'}, {'status': 'affected', 'version': '0', 'lessThan': '6.1.175', 'versionType': 'semver'}, {'status': 'affected', 'version': '0', 'lessThan': '6.6.141', 'versionType': 'semver'}, {'status': 'affected', 'version': '0', 'lessThan': '6.12.91', 'versionType': 'semver'}, {'status': 'affected', 'version': '0', 'lessThan': '6.18.33', 'versionType': 'semver'}, {'status': 'affected', 'version': '0', 'lessThan': '7.0.10', 'versionType': 'semver'}], 'programFiles': ['net/ceph/osdmap.c'], 'defaultStatus': 'unaffected'}, {'repo': 'https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git', 'vendor': 'Linux', 'product': 'Linux', 'versions': [{'status': 'unaffected', 'version': '5.10.258', 'versionType': 'semver', 'lessThanOrEqual': '5.10.*'}, {'status': 'unaffected', 'version': '5.15.209', 'versionType': 'semver', 'lessThanOrEqual': '5.15.*'}, {'status': 'unaffected', 'version': '6.1.175', 'versionType': 'semver', 'lessThanOrEqual': '6.1.*'}, {'status': 'unaffected', 'version': '6.6.141', 'versionType': 'semver', 'lessThanOrEqual': '6.6.*'}, {'status': 'unaffected', 'version': '6.12.91', 'versionType': 'semver', 'lessThanOrEqual': '6.12.*'}, {'status': 'unaffected', 'version': '6.18.33', 'versionType': 'semver', 'lessThanOrEqual': '6.18.*'}, {'status': 'unaffected', 'version': '7.0.10', 'versionType': 'semver', 'lessThanOrEqual': '7.0.*'}, {'status': 'unaffected', 'version': '7.1', 'versionType': 'original_commit_for_fix', 'lessThanOrEqual': '*'}], 'programFiles': ['net/ceph/osdmap.c'], 'defaultStatus': 'affected'}] [{'repo': 'https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git', 'vendor': 'Linux', 'product': 'Linux', 'versions': [{'status': 'affected', 'version': '5cf9c4a9959b6273675310d14a834ef14fbca37c', 'lessThan': 'c7bf7864e2924fa5508ac270b0e9364bc13d5a6c', 'versionType': 'git'}, {'status': 'affected', 'version': '5cf9c4a9959b6273675310d14a834ef14fbca37c', 'lessThan': 'f47430fc1f815e87406e2d3b4e476eff1bc7fd9b', 'versionType': 'git'}, {'status': 'affected', 'version': '5cf9c4a9959b6273675310d14a834ef14fbca37c', 'lessThan': '0b6a3bcb91bc5bfeda39f0df3b71bab62c13e9da', 'versionType': 'git'}, {'status': 'affected', 'version': '5cf9c4a9959b6273675310d14a834ef14fbca37c', 'lessThan': '534ebc08df97c47d4c7596f336fa31ecbf91519c', 'versionType': 'git'}, {'status': 'affected', 'version': '5cf9c4a9959b6273675310d14a834ef14fbca37c', 'lessThan': '80c73bd1b2b04355d1d0c29be8ccbd25a380905d', 'versionType': 'git'}, {'status': 'affected', 'version': '5cf9c4a9959b6273675310d14a834ef14fbca37c', 'lessThan': '4d2b37abda9536808655830d683dc491d31741a8', 'versionType': 'git'}, {'status': 'affected', 'version': '5cf9c4a9959b6273675310d14a834ef14fbca37c', 'lessThan': '0a1265a9ab875f92b6a3ffb497404f46cf9d76a3', 'versionType': 'git'}, {'status': 'affected', 'version': '5cf9c4a9959b6273675310d14a834ef14fbca37c', 'lessThan': 'd289478cfc0bcf81c7914200d6abdcb78bd04ded', 'versionType': 'git'}], 'programFiles': ['net/ceph/osdmap.c'], 'defaultStatus': 'unaffected'}, {'repo': 'https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git', 'vendor': 'Linux', 'product': 'Linux', 'versions': [{'status': 'affected', 'version': '4.13'}, {'status': 'unaffected', 'version': '0', 'lessThan': '4.13', 'versionType': 'semver'}, {'status': 'unaffected', 'version': '5.10.258', 'versionType': 'semver', 'lessThanOrEqual': '5.10.*'}, {'status': 'unaffected', 'version': '5.15.209', 'versionType': 'semver', 'lessThanOrEqual': '5.15.*'}, {'status': 'unaffected', 'version': '6.1.175', 'versionType': 'semver', 'lessThanOrEqual': '6.1.*'}, {'status': 'unaffected', 'version': '6.6.141', 'versionType': 'semver', 'lessThanOrEqual': '6.6.*'}, {'status': 'unaffected', 'version': '6.12.91', 'versionType': 'semver', 'lessThanOrEqual': '6.12.*'}, {'status': 'unaffected', 'version': '6.18.33', 'versionType': 'semver', 'lessThanOrEqual': '6.18.*'}, {'status': 'unaffected', 'version': '7.0.10', 'versionType': 'semver', 'lessThanOrEqual': '7.0.*'}, {'status': 'unaffected', 'version': '7.1', 'versionType': 'original_commit_for_fix', 'lessThanOrEqual': '*'}], 'programFiles': ['net/ceph/osdmap.c'], 'defaultStatus': 'affected'}] -
CVE Modified by 416baaa9-dc9f-4396-8d5f-8c081fb06d67
Jun. 28, 2026
Action Type Old Value New Value Added CVSS V3.1 AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H -
New CVE Received by 416baaa9-dc9f-4396-8d5f-8c081fb06d67
Jun. 24, 2026
Action Type Old Value New Value Added Affected [{'repo': 'https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git', 'vendor': 'Linux', 'product': 'Linux', 'versions': [{'status': 'affected', 'version': '1da177e4c3f41524e886b7f1b8a0c1fc7321cac2', 'lessThan': 'c7bf7864e2924fa5508ac270b0e9364bc13d5a6c', 'versionType': 'git'}, {'status': 'affected', 'version': '1da177e4c3f41524e886b7f1b8a0c1fc7321cac2', 'lessThan': 'f47430fc1f815e87406e2d3b4e476eff1bc7fd9b', 'versionType': 'git'}, {'status': 'affected', 'version': '1da177e4c3f41524e886b7f1b8a0c1fc7321cac2', 'lessThan': '0b6a3bcb91bc5bfeda39f0df3b71bab62c13e9da', 'versionType': 'git'}, {'status': 'affected', 'version': '1da177e4c3f41524e886b7f1b8a0c1fc7321cac2', 'lessThan': '534ebc08df97c47d4c7596f336fa31ecbf91519c', 'versionType': 'git'}, {'status': 'affected', 'version': '1da177e4c3f41524e886b7f1b8a0c1fc7321cac2', 'lessThan': '80c73bd1b2b04355d1d0c29be8ccbd25a380905d', 'versionType': 'git'}, {'status': 'affected', 'version': '1da177e4c3f41524e886b7f1b8a0c1fc7321cac2', 'lessThan': '4d2b37abda9536808655830d683dc491d31741a8', 'versionType': 'git'}, {'status': 'affected', 'version': '1da177e4c3f41524e886b7f1b8a0c1fc7321cac2', 'lessThan': '0a1265a9ab875f92b6a3ffb497404f46cf9d76a3', 'versionType': 'git'}, {'status': 'affected', 'version': '1da177e4c3f41524e886b7f1b8a0c1fc7321cac2', 'lessThan': 'd289478cfc0bcf81c7914200d6abdcb78bd04ded', 'versionType': 'git'}, {'status': 'affected', 'version': '0', 'lessThan': '5.10.258', 'versionType': 'semver'}, {'status': 'affected', 'version': '0', 'lessThan': '5.15.209', 'versionType': 'semver'}, {'status': 'affected', 'version': '0', 'lessThan': '6.1.175', 'versionType': 'semver'}, {'status': 'affected', 'version': '0', 'lessThan': '6.6.141', 'versionType': 'semver'}, {'status': 'affected', 'version': '0', 'lessThan': '6.12.91', 'versionType': 'semver'}, {'status': 'affected', 'version': '0', 'lessThan': '6.18.33', 'versionType': 'semver'}, {'status': 'affected', 'version': '0', 'lessThan': '7.0.10', 'versionType': 'semver'}], 'programFiles': ['net/ceph/osdmap.c'], 'defaultStatus': 'unaffected'}, {'repo': 'https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git', 'vendor': 'Linux', 'product': 'Linux', 'versions': [{'status': 'unaffected', 'version': '5.10.258', 'versionType': 'semver', 'lessThanOrEqual': '5.10.*'}, {'status': 'unaffected', 'version': '5.15.209', 'versionType': 'semver', 'lessThanOrEqual': '5.15.*'}, {'status': 'unaffected', 'version': '6.1.175', 'versionType': 'semver', 'lessThanOrEqual': '6.1.*'}, {'status': 'unaffected', 'version': '6.6.141', 'versionType': 'semver', 'lessThanOrEqual': '6.6.*'}, {'status': 'unaffected', 'version': '6.12.91', 'versionType': 'semver', 'lessThanOrEqual': '6.12.*'}, {'status': 'unaffected', 'version': '6.18.33', 'versionType': 'semver', 'lessThanOrEqual': '6.18.*'}, {'status': 'unaffected', 'version': '7.0.10', 'versionType': 'semver', 'lessThanOrEqual': '7.0.*'}, {'status': 'unaffected', 'version': '7.1', 'versionType': 'original_commit_for_fix', 'lessThanOrEqual': '*'}], 'programFiles': ['net/ceph/osdmap.c'], 'defaultStatus': 'affected'}] Added Description In the Linux kernel, the following vulnerability has been resolved: libceph: handle rbtree insertion error in decode_choose_args() A message of type CEPH_MSG_OSD_MAP contains an OSD map that itself contains a CRUSH map. The received CRUSH map may optionally contain choose_args that get decoded in decode_choose_args(). In this function, num_choose_arg_maps is read from the message, and a corresponding number of crush_choose_arg_maps gets decoded afterwards. Each crush_choose_arg_map has a choose_args_index, which serves as the key when inserting it into the choose_args rbtree of the decoded crush_map. If a (potentially corrupted) message contains two crush_choose_arg_maps with the same index, the assertion in insert_choose_arg_map() triggers a kernel BUG when trying to insert the second crush_choose_arg_map. This patch fixes the issue by switching to the non-asserting rbtree insertion function and rejecting the message if the insertion fails. [ idryomov: changelog ] Added Reference https://git.kernel.org/stable/c/0a1265a9ab875f92b6a3ffb497404f46cf9d76a3 Added Reference https://git.kernel.org/stable/c/0b6a3bcb91bc5bfeda39f0df3b71bab62c13e9da Added Reference https://git.kernel.org/stable/c/4d2b37abda9536808655830d683dc491d31741a8 Added Reference https://git.kernel.org/stable/c/534ebc08df97c47d4c7596f336fa31ecbf91519c Added Reference https://git.kernel.org/stable/c/80c73bd1b2b04355d1d0c29be8ccbd25a380905d Added Reference https://git.kernel.org/stable/c/c7bf7864e2924fa5508ac270b0e9364bc13d5a6c Added Reference https://git.kernel.org/stable/c/d289478cfc0bcf81c7914200d6abdcb78bd04ded Added Reference https://git.kernel.org/stable/c/f47430fc1f815e87406e2d3b4e476eff1bc7fd9b