{"id":"CVE-2026-93267","state":"PUBLISHED","title":"RDMA/core: Fix potential use after free in uverbs_free_dmah()","description":"In the Linux kernel, the following vulnerability has been resolved:\n\nRDMA/core: Fix potential use after free in uverbs_free_dmah()\n\nWhen accessing a dmah via the netlink path the only synchronization\nmechanism for the said dmah is rdma_restrack_get().\nCurrently, rdma_restrack_del() is invoked at the end of\nuverbs_free_dmah(), which is too late, since by that point\nvendor-specific resources associated with the dmah might already be\nfreed. This can leave a short window where the dmah remains accessible\nthrough restrack, leading to a potential use-after-free.\n\nFix this by moving the rdma_restrack_begin_del() call to the start of\nuverbs_free_dmah(), ensuring that the dmah is removed from restrack\nbefore its internal resources are released. This guarantees that no new\nusers hold references to a dmah that is in the process of destruction.\n\nIn addition, this change preserves the intended inverted order\nbetween create and destroy routines: resources are added to\nrestrack at the end of successful creation, and hence shall be removed\nfrom the restrack first thing during the destruction flow, which keeps\nthe lifecycle management consistent and predictable.","publishedAt":"2026-09-24T15:52:06.415Z","updatedAt":"2026-10-19T09:08:20.283Z","severity":null,"assigner":"Linux","products":["Linux Linux"],"affected":[{"vendor":"Linux","product":"Linux","defaultStatus":"unaffected","versions":[{"version":"d83edab562a496a42720902a1d2effccd05c37c5","status":"affected","lessThan":"8b22722f45a29a7c0900b1d4d0bc5da5492ece10","versionType":"git"},{"version":"d83edab562a496a42720902a1d2effccd05c37c5","status":"affected","lessThan":"bfc119a40c04bbe3daad826f2160ccbfae6c64ce","versionType":"git"},{"version":"d83edab562a496a42720902a1d2effccd05c37c5","status":"affected","lessThan":"2696626a0be5877f445fb647c25ef43930c777e6","versionType":"git"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/infiniband/core/uverbs_std_types_dmah.c"]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","versions":[{"version":"6.17","status":"affected"},{"version":"0","status":"unaffected","lessThan":"6.17","versionType":"semver"},{"version":"6.18.52","status":"unaffected","lessThanOrEqual":"6.18.*","versionType":"semver"},{"version":"7.2.6","status":"unaffected","lessThanOrEqual":"7.2.*","versionType":"semver"},{"version":"7.3","status":"unaffected","lessThanOrEqual":"*","versionType":"original_commit_for_fix"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/infiniband/core/uverbs_std_types_dmah.c"]}],"references":["https://git.kernel.org/stable/c/8b22722f45a29a7c0900b1d4d0bc5da5492ece10","https://git.kernel.org/stable/c/bfc119a40c04bbe3daad826f2160ccbfae6c64ce","https://git.kernel.org/stable/c/2696626a0be5877f445fb647c25ef43930c777e6"],"weaknesses":[],"ingestedAt":"2026-10-29T20:13:34.582Z","source":{"repository":"CVEProject/cvelistV5","path":"cves/2026/93xxx/CVE-2026-93267.json","commit":"556c9d3a8cd17e218bb8e452ba7cd619a384ff47"},"raw":{"dataType":"CVE_RECORD","dataVersion":"5.2","cveMetadata":{"cveId":"CVE-2026-93267","state":"PUBLISHED","datePublished":"2026-09-24T15:52:06.415Z","dateUpdated":"2026-10-19T09:08:20.283Z","assignerShortName":"Linux","assignerOrgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateReserved":"2026-09-17T16:02:15.097Z"},"containers":{"cna":{"title":"RDMA/core: Fix potential use after free in uverbs_free_dmah()","descriptions":[{"lang":"en","value":"In the Linux kernel, the following vulnerability has been resolved:\n\nRDMA/core: Fix potential use after free in uverbs_free_dmah()\n\nWhen accessing a dmah via the netlink path the only synchronization\nmechanism for the said dmah is rdma_restrack_get().\nCurrently, rdma_restrack_del() is invoked at the end of\nuverbs_free_dmah(), which is too late, since by that point\nvendor-specific resources associated with the dmah might already be\nfreed. This can leave a short window where the dmah remains accessible\nthrough restrack, leading to a potential use-after-free.\n\nFix this by moving the rdma_restrack_begin_del() call to the start of\nuverbs_free_dmah(), ensuring that the dmah is removed from restrack\nbefore its internal resources are released. This guarantees that no new\nusers hold references to a dmah that is in the process of destruction.\n\nIn addition, this change preserves the intended inverted order\nbetween create and destroy routines: resources are added to\nrestrack at the end of successful creation, and hence shall be removed\nfrom the restrack first thing during the destruction flow, which keeps\nthe lifecycle management consistent and predictable."}],"affected":[{"vendor":"Linux","product":"Linux","defaultStatus":"unaffected","versions":[{"version":"d83edab562a496a42720902a1d2effccd05c37c5","status":"affected","lessThan":"8b22722f45a29a7c0900b1d4d0bc5da5492ece10","versionType":"git"},{"version":"d83edab562a496a42720902a1d2effccd05c37c5","status":"affected","lessThan":"bfc119a40c04bbe3daad826f2160ccbfae6c64ce","versionType":"git"},{"version":"d83edab562a496a42720902a1d2effccd05c37c5","status":"affected","lessThan":"2696626a0be5877f445fb647c25ef43930c777e6","versionType":"git"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/infiniband/core/uverbs_std_types_dmah.c"]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","versions":[{"version":"6.17","status":"affected"},{"version":"0","status":"unaffected","lessThan":"6.17","versionType":"semver"},{"version":"6.18.52","status":"unaffected","lessThanOrEqual":"6.18.*","versionType":"semver"},{"version":"7.2.6","status":"unaffected","lessThanOrEqual":"7.2.*","versionType":"semver"},{"version":"7.3","status":"unaffected","lessThanOrEqual":"*","versionType":"original_commit_for_fix"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/infiniband/core/uverbs_std_types_dmah.c"]}],"references":[{"url":"https://git.kernel.org/stable/c/8b22722f45a29a7c0900b1d4d0bc5da5492ece10"},{"url":"https://git.kernel.org/stable/c/bfc119a40c04bbe3daad826f2160ccbfae6c64ce"},{"url":"https://git.kernel.org/stable/c/2696626a0be5877f445fb647c25ef43930c777e6"}],"providerMetadata":{"shortName":"Linux","orgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateUpdated":"2026-10-19T09:08:20.283Z"},"cpeApplicability":[{"nodes":[{"operator":"OR","negate":false,"cpeMatch":[{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"6.17","versionEndExcluding":"6.18.52"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"6.17","versionEndExcluding":"7.2.6"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"6.17","versionEndExcluding":"7.3"}]}]}],"x_generator":{"engine":"bippy-1.2.0"}}}}}