{"id":"CVE-2026-52954","state":"PUBLISHED","title":"libceph: handle rbtree insertion error in decode_choose_args()","description":"In the Linux kernel, the following vulnerability has been resolved:\n\nlibceph: handle rbtree insertion error in decode_choose_args()\n\nA message of type CEPH_MSG_OSD_MAP contains an OSD map that itself\ncontains a CRUSH map. The received CRUSH map may optionally contain\nchoose_args that get decoded in decode_choose_args(). In this function,\nnum_choose_arg_maps is read from the message, and a corresponding number\nof crush_choose_arg_maps gets decoded afterwards. Each\ncrush_choose_arg_map has a choose_args_index, which serves as the key\nwhen inserting it into the choose_args rbtree of the decoded crush_map.\nIf a (potentially corrupted) message contains two crush_choose_arg_maps\nwith the same index, the assertion in insert_choose_arg_map() triggers a\nkernel BUG when trying to insert the second crush_choose_arg_map.\n\nThis patch fixes the issue by switching to the non-asserting rbtree\ninsertion function and rejecting the message if the insertion fails.\n\n[ idryomov: changelog ]","publishedAt":"2026-06-24T16:28:36.992Z","updatedAt":"2026-10-19T19:47:09.795Z","severity":{"score":7.5,"label":"High","version":"3.1","vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H","source":"Linux"},"assigner":"Linux","products":["Linux Linux"],"affected":[{"vendor":"Linux","product":"Linux","defaultStatus":"unaffected","versions":[{"version":"5cf9c4a9959b6273675310d14a834ef14fbca37c","status":"affected","lessThan":"c7bf7864e2924fa5508ac270b0e9364bc13d5a6c","versionType":"git"},{"version":"5cf9c4a9959b6273675310d14a834ef14fbca37c","status":"affected","lessThan":"f47430fc1f815e87406e2d3b4e476eff1bc7fd9b","versionType":"git"},{"version":"5cf9c4a9959b6273675310d14a834ef14fbca37c","status":"affected","lessThan":"0b6a3bcb91bc5bfeda39f0df3b71bab62c13e9da","versionType":"git"},{"version":"5cf9c4a9959b6273675310d14a834ef14fbca37c","status":"affected","lessThan":"534ebc08df97c47d4c7596f336fa31ecbf91519c","versionType":"git"},{"version":"5cf9c4a9959b6273675310d14a834ef14fbca37c","status":"affected","lessThan":"80c73bd1b2b04355d1d0c29be8ccbd25a380905d","versionType":"git"},{"version":"5cf9c4a9959b6273675310d14a834ef14fbca37c","status":"affected","lessThan":"4d2b37abda9536808655830d683dc491d31741a8","versionType":"git"},{"version":"5cf9c4a9959b6273675310d14a834ef14fbca37c","status":"affected","lessThan":"0a1265a9ab875f92b6a3ffb497404f46cf9d76a3","versionType":"git"},{"version":"5cf9c4a9959b6273675310d14a834ef14fbca37c","status":"affected","lessThan":"d289478cfc0bcf81c7914200d6abdcb78bd04ded","versionType":"git"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["net/ceph/osdmap.c"]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","versions":[{"version":"4.13","status":"affected"},{"version":"0","status":"unaffected","lessThan":"4.13","versionType":"semver"},{"version":"5.10.258","status":"unaffected","lessThanOrEqual":"5.10.*","versionType":"semver"},{"version":"5.15.209","status":"unaffected","lessThanOrEqual":"5.15.*","versionType":"semver"},{"version":"6.1.175","status":"unaffected","lessThanOrEqual":"6.1.*","versionType":"semver"},{"version":"6.6.141","status":"unaffected","lessThanOrEqual":"6.6.*","versionType":"semver"},{"version":"6.12.91","status":"unaffected","lessThanOrEqual":"6.12.*","versionType":"semver"},{"version":"6.18.33","status":"unaffected","lessThanOrEqual":"6.18.*","versionType":"semver"},{"version":"7.0.10","status":"unaffected","lessThanOrEqual":"7.0.*","versionType":"semver"},{"version":"7.1","status":"unaffected","lessThanOrEqual":"*","versionType":"original_commit_for_fix"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["net/ceph/osdmap.c"]}],"references":["https://git.kernel.org/stable/c/c7bf7864e2924fa5508ac270b0e9364bc13d5a6c","https://git.kernel.org/stable/c/f47430fc1f815e87406e2d3b4e476eff1bc7fd9b","https://git.kernel.org/stable/c/0b6a3bcb91bc5bfeda39f0df3b71bab62c13e9da","https://git.kernel.org/stable/c/534ebc08df97c47d4c7596f336fa31ecbf91519c","https://git.kernel.org/stable/c/80c73bd1b2b04355d1d0c29be8ccbd25a380905d","https://git.kernel.org/stable/c/4d2b37abda9536808655830d683dc491d31741a8","https://git.kernel.org/stable/c/0a1265a9ab875f92b6a3ffb497404f46cf9d76a3","https://git.kernel.org/stable/c/d289478cfc0bcf81c7914200d6abdcb78bd04ded"],"weaknesses":["CWE-20"],"ingestedAt":"2026-10-29T20:12:16.098Z","source":{"repository":"CVEProject/cvelistV5","path":"cves/2026/52xxx/CVE-2026-52954.json","commit":"556c9d3a8cd17e218bb8e452ba7cd619a384ff47"},"raw":{"dataType":"CVE_RECORD","dataVersion":"5.2","cveMetadata":{"cveId":"CVE-2026-52954","state":"PUBLISHED","datePublished":"2026-06-24T16:28:36.992Z","dateUpdated":"2026-10-19T19:47:09.795Z","assignerShortName":"Linux","assignerOrgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateReserved":"2026-06-09T07:44:35.372Z"},"containers":{"cna":{"title":"libceph: handle rbtree insertion error in decode_choose_args()","descriptions":[{"lang":"en","value":"In the Linux kernel, the following vulnerability has been resolved:\n\nlibceph: handle rbtree insertion error in decode_choose_args()\n\nA message of type CEPH_MSG_OSD_MAP contains an OSD map that itself\ncontains a CRUSH map. The received CRUSH map may optionally contain\nchoose_args that get decoded in decode_choose_args(). In this function,\nnum_choose_arg_maps is read from the message, and a corresponding number\nof crush_choose_arg_maps gets decoded afterwards. Each\ncrush_choose_arg_map has a choose_args_index, which serves as the key\nwhen inserting it into the choose_args rbtree of the decoded crush_map.\nIf a (potentially corrupted) message contains two crush_choose_arg_maps\nwith the same index, the assertion in insert_choose_arg_map() triggers a\nkernel BUG when trying to insert the second crush_choose_arg_map.\n\nThis patch fixes the issue by switching to the non-asserting rbtree\ninsertion function and rejecting the message if the insertion fails.\n\n[ idryomov: changelog ]"}],"affected":[{"vendor":"Linux","product":"Linux","defaultStatus":"unaffected","versions":[{"version":"5cf9c4a9959b6273675310d14a834ef14fbca37c","status":"affected","lessThan":"c7bf7864e2924fa5508ac270b0e9364bc13d5a6c","versionType":"git"},{"version":"5cf9c4a9959b6273675310d14a834ef14fbca37c","status":"affected","lessThan":"f47430fc1f815e87406e2d3b4e476eff1bc7fd9b","versionType":"git"},{"version":"5cf9c4a9959b6273675310d14a834ef14fbca37c","status":"affected","lessThan":"0b6a3bcb91bc5bfeda39f0df3b71bab62c13e9da","versionType":"git"},{"version":"5cf9c4a9959b6273675310d14a834ef14fbca37c","status":"affected","lessThan":"534ebc08df97c47d4c7596f336fa31ecbf91519c","versionType":"git"},{"version":"5cf9c4a9959b6273675310d14a834ef14fbca37c","status":"affected","lessThan":"80c73bd1b2b04355d1d0c29be8ccbd25a380905d","versionType":"git"},{"version":"5cf9c4a9959b6273675310d14a834ef14fbca37c","status":"affected","lessThan":"4d2b37abda9536808655830d683dc491d31741a8","versionType":"git"},{"version":"5cf9c4a9959b6273675310d14a834ef14fbca37c","status":"affected","lessThan":"0a1265a9ab875f92b6a3ffb497404f46cf9d76a3","versionType":"git"},{"version":"5cf9c4a9959b6273675310d14a834ef14fbca37c","status":"affected","lessThan":"d289478cfc0bcf81c7914200d6abdcb78bd04ded","versionType":"git"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["net/ceph/osdmap.c"]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","versions":[{"version":"4.13","status":"affected"},{"version":"0","status":"unaffected","lessThan":"4.13","versionType":"semver"},{"version":"5.10.258","status":"unaffected","lessThanOrEqual":"5.10.*","versionType":"semver"},{"version":"5.15.209","status":"unaffected","lessThanOrEqual":"5.15.*","versionType":"semver"},{"version":"6.1.175","status":"unaffected","lessThanOrEqual":"6.1.*","versionType":"semver"},{"version":"6.6.141","status":"unaffected","lessThanOrEqual":"6.6.*","versionType":"semver"},{"version":"6.12.91","status":"unaffected","lessThanOrEqual":"6.12.*","versionType":"semver"},{"version":"6.18.33","status":"unaffected","lessThanOrEqual":"6.18.*","versionType":"semver"},{"version":"7.0.10","status":"unaffected","lessThanOrEqual":"7.0.*","versionType":"semver"},{"version":"7.1","status":"unaffected","lessThanOrEqual":"*","versionType":"original_commit_for_fix"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["net/ceph/osdmap.c"]}],"references":[{"url":"https://git.kernel.org/stable/c/c7bf7864e2924fa5508ac270b0e9364bc13d5a6c"},{"url":"https://git.kernel.org/stable/c/f47430fc1f815e87406e2d3b4e476eff1bc7fd9b"},{"url":"https://git.kernel.org/stable/c/0b6a3bcb91bc5bfeda39f0df3b71bab62c13e9da"},{"url":"https://git.kernel.org/stable/c/534ebc08df97c47d4c7596f336fa31ecbf91519c"},{"url":"https://git.kernel.org/stable/c/80c73bd1b2b04355d1d0c29be8ccbd25a380905d"},{"url":"https://git.kernel.org/stable/c/4d2b37abda9536808655830d683dc491d31741a8"},{"url":"https://git.kernel.org/stable/c/0a1265a9ab875f92b6a3ffb497404f46cf9d76a3"},{"url":"https://git.kernel.org/stable/c/d289478cfc0bcf81c7914200d6abdcb78bd04ded"}],"metrics":[{"cvssV3_1":{"version":"3.1","vectorString":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H","baseScore":7.5,"baseSeverity":"HIGH"},"scenarios":[{"lang":"en","value":"AV:N - The vulnerable decoder processes CEPH_MSG_OSD_MAP data received over the Ceph network protocol from monitor or OSD peers.\nAC:L - An attacker controlling an accepted Ceph peer can deterministically include two choose_arg_maps with the same choose_args_index; no race or special memory state is required.\nPR:N - In the highest reasonable scenario, a malicious or compromised Ceph cluster endpoint sends the malformed map to an already connected client and needs no privileges on the victim system.\nUI:N - OSD map updates are processed asynchronously by the kernel client after the Ceph session exists; no victim action is needed to process the malicious message.\nS:U - The impact is within the same kernel security authority and does not cross a VM, IOMMU, or sandbox boundary.\nC:N - The bug triggers a BUG() assertion on duplicate rbtree insertion and does not provide an information disclosure primitive.\nI:N - The vulnerable path does not perform attacker-controlled memory corruption; it aborts via BUG() before creating an integrity-impacting primitive.\nA:H - The duplicate choose_args_index triggers a kernel BUG/oops in the Ceph client decode path, causing a high-impact denial of service."}]}],"providerMetadata":{"shortName":"Linux","orgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateUpdated":"2026-08-05T12:32:04.179Z"},"cpeApplicability":[{"nodes":[{"operator":"OR","negate":false,"cpeMatch":[{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.13","versionEndExcluding":"5.10.258"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.13","versionEndExcluding":"5.15.209"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.13","versionEndExcluding":"6.1.175"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.13","versionEndExcluding":"6.6.141"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.13","versionEndExcluding":"6.12.91"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.13","versionEndExcluding":"6.18.33"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.13","versionEndExcluding":"7.0.10"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.13","versionEndExcluding":"7.1"}]}]}],"x_generator":{"engine":"bippy-1.2.0"}},"adp":[{"title":"CISA ADP Vulnrichment","metrics":[{"other":{"type":"ssvc","content":{"id":"CVE-2026-52954","role":"CISA Coordinator","options":[{"Exploitation":"none"},{"Automatable":"yes"},{"Technical Impact":"partial"}],"version":"2.0.3","timestamp":"2026-10-16T15:23:24.439949Z"}}}],"problemTypes":[{"descriptions":[{"cweId":"CWE-20","lang":"en","type":"CWE","description":"CWE-20 Improper Input Validation"}]}],"providerMetadata":{"shortName":"CISA-ADP","orgId":"134c704f-9b21-4f2e-91b3-4a467353bcc0","dateUpdated":"2026-10-19T19:47:09.795Z"}}]}}}