{"id":"CVE-2026-74275","state":"PUBLISHED","title":"cxl/region: Fix out-of-bounds access in cxl_cancel_auto_attach()","description":"In the Linux kernel, the following vulnerability has been resolved:\n\ncxl/region: Fix out-of-bounds access in cxl_cancel_auto_attach()\n\nIn cxl_cancel_auto_attach(), it assumes cxled->pos is a valid index for\naccessing p->targets[]. However, cxled->pos can be set to negative errno\nin cxl_region_sort_targets() if cxl_calc_interleave_pos() fails. This\ncauses the driver to use a negative index to access p->targets[],\nresulting in out-of-bounds access.\n\nFix it by walking p->targets[] instead of using cxled->pos directly.","publishedAt":"2026-08-15T05:57:47.455Z","updatedAt":"2026-08-17T05:45:17.863Z","severity":{"score":8.4,"label":"High","version":"3.1","vector":"CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H","source":"Linux"},"assigner":"Linux","products":["Linux Linux"],"affected":[{"vendor":"Linux","product":"Linux","defaultStatus":"unaffected","versions":[{"version":"87805c32e6ad7b5ce2d9f7f47e76081857a4a335","status":"affected","lessThan":"44b2397eb67b7f728640989a22d062e41f94ab64","versionType":"git"},{"version":"87805c32e6ad7b5ce2d9f7f47e76081857a4a335","status":"affected","lessThan":"cbda6a2c2bec2a5fb30a2ce85baeab15b5fc7db3","versionType":"git"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/cxl/core/region.c"]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","versions":[{"version":"7.1","status":"affected"},{"version":"0","status":"unaffected","lessThan":"7.1","versionType":"semver"},{"version":"7.1.5","status":"unaffected","lessThanOrEqual":"7.1.*","versionType":"semver"},{"version":"7.2","status":"unaffected","lessThanOrEqual":"*","versionType":"original_commit_for_fix"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/cxl/core/region.c"]}],"references":["https://git.kernel.org/stable/c/44b2397eb67b7f728640989a22d062e41f94ab64","https://git.kernel.org/stable/c/cbda6a2c2bec2a5fb30a2ce85baeab15b5fc7db3"],"weaknesses":[],"ingestedAt":"2026-10-29T20:12:58.252Z","source":{"repository":"CVEProject/cvelistV5","path":"cves/2026/74xxx/CVE-2026-74275.json","commit":"556c9d3a8cd17e218bb8e452ba7cd619a384ff47"},"raw":{"dataType":"CVE_RECORD","dataVersion":"5.2","cveMetadata":{"cveId":"CVE-2026-74275","state":"PUBLISHED","datePublished":"2026-08-15T05:57:47.455Z","dateUpdated":"2026-08-17T05:45:17.863Z","assignerShortName":"Linux","assignerOrgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateReserved":"2026-08-15T05:44:03.879Z"},"containers":{"cna":{"title":"cxl/region: Fix out-of-bounds access in cxl_cancel_auto_attach()","descriptions":[{"lang":"en","value":"In the Linux kernel, the following vulnerability has been resolved:\n\ncxl/region: Fix out-of-bounds access in cxl_cancel_auto_attach()\n\nIn cxl_cancel_auto_attach(), it assumes cxled->pos is a valid index for\naccessing p->targets[]. However, cxled->pos can be set to negative errno\nin cxl_region_sort_targets() if cxl_calc_interleave_pos() fails. This\ncauses the driver to use a negative index to access p->targets[],\nresulting in out-of-bounds access.\n\nFix it by walking p->targets[] instead of using cxled->pos directly."}],"affected":[{"vendor":"Linux","product":"Linux","defaultStatus":"unaffected","versions":[{"version":"87805c32e6ad7b5ce2d9f7f47e76081857a4a335","status":"affected","lessThan":"44b2397eb67b7f728640989a22d062e41f94ab64","versionType":"git"},{"version":"87805c32e6ad7b5ce2d9f7f47e76081857a4a335","status":"affected","lessThan":"cbda6a2c2bec2a5fb30a2ce85baeab15b5fc7db3","versionType":"git"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/cxl/core/region.c"]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","versions":[{"version":"7.1","status":"affected"},{"version":"0","status":"unaffected","lessThan":"7.1","versionType":"semver"},{"version":"7.1.5","status":"unaffected","lessThanOrEqual":"7.1.*","versionType":"semver"},{"version":"7.2","status":"unaffected","lessThanOrEqual":"*","versionType":"original_commit_for_fix"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/cxl/core/region.c"]}],"references":[{"url":"https://git.kernel.org/stable/c/44b2397eb67b7f728640989a22d062e41f94ab64"},{"url":"https://git.kernel.org/stable/c/cbda6a2c2bec2a5fb30a2ce85baeab15b5fc7db3"}],"metrics":[{"cvssV3_1":{"version":"3.1","vectorString":"CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H","baseScore":8.4,"baseSeverity":"HIGH"},"scenarios":[{"lang":"en","value":"AV:L - The flaw is in the CXL region driver reached via local kernel paths—CXL endpoint decoder auto-discovery/attach, sysfs region/target management under /sys/bus/cxl/, and PCI/CXL device removal—not via any network protocol or remote packet handler.\nAC:L - Once CXL auto-region assembly fails in cxl_region_sort_targets() leaving a decoder AUTO_STAGED with a negative cxled->pos, an attacker who can present or remove CXL endpoints can reliably trigger cxl_cancel_auto_attach() during decoder teardown without uncontrollable timing or memory-layout dependencies.\nPR:N - The vulnerable teardown path runs automatically during kernel-driven CXL endpoint decoder unregistration after failed auto-assembly; it does not require authenticated access or elevated credentials, only that a CXL topology causes cxl_calc_interleave_pos() to fail before the decoder is removed.\nUI:N - Exploitation requires no end-user interaction such as opening files or mounting filesystems; it is triggered by kernel CXL auto-discovery, region assembly failure, and subsequent endpoint decoder detach/unregister events.\nS:U - The out-of-bounds access corrupts kernel cxl_region_params memory within the same kernel security boundary and does not by itself cross VM, container, or IOMMU isolation boundaries.\nC:H - cxl_region_by_target() performs an out-of-bounds read using the negative cxled->pos as an index into p->targets[], leaking adjacent kernel memory from the cxl_region_params structure before the array base.\nI:H - cxl_cancel_auto_attach() writes NULL via p->targets[pos] using the same negative index, corrupting adjacent fields such as the region resource pointer and other cxl_region_params metadata exploitable for further memory corruption.\nA:H - Out-of-bounds access and corruption of critical region metadata pointers can cause kernel oops, panic, or hang during CXL region teardown on systems with CONFIG_CXL_REGION and interleaved CXL memory expanders."}]}],"providerMetadata":{"shortName":"Linux","orgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateUpdated":"2026-08-17T05:45:17.863Z"},"cpeApplicability":[{"nodes":[{"operator":"OR","negate":false,"cpeMatch":[{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"7.1","versionEndExcluding":"7.1.5"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"7.1","versionEndExcluding":"7.2"}]}]}],"x_generator":{"engine":"bippy-1.2.0"}}}}}