{"dataType":"CVE_RECORD","dataVersion":"5.2","cveMetadata":{"cveId":"CVE-2026-92510","assignerOrgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","state":"PUBLISHED","assignerShortName":"Linux","dateReserved":"2026-09-16T12:21:13.872Z","datePublished":"2026-09-17T16:10:20.775Z","dateUpdated":"2026-09-18T17:55:33.514Z"},"containers":{"cna":{"providerMetadata":{"orgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","shortName":"Linux","dateUpdated":"2026-09-18T17:55:33.514Z"},"descriptions":[{"lang":"en","value":"In the Linux kernel, the following vulnerability has been resolved:\n\nRDMA/core: Fix potential use after free in ib_destroy_srq_user()\n\nWhen accessing a SRQ via the netlink path the only synchronization\nmechanism for the said SRQ is rdma_restrack_get().\nCurrently, rdma_restrack_del() is invoked at the end of\nib_destroy_srq_user(), which is too late, since by that point\nvendor-specific resources associated with the SRQ might already be\nfreed. This can leave a short window where the SRQ 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\nib_destroy_srq_user(), ensuring that the SRQ is removed from restrack\nbefore its internal resources are released. This guarantees that no new\nusers hold references to a SRQ 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."}],"metrics":[{"cvssV3_1":{"version":"3.1","vectorString":"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H","baseScore":7.8,"baseSeverity":"HIGH"},"scenarios":[{"lang":"en","value":"AV:L - Reached by a local write/ioctl on /dev/infiniband/uverbsN (IB_USER_VERBS_CMD_DESTROY_SRQ or UVERBS_METHOD_SRQ_DESTROY → uverbs_free_srq → ib_destroy_srq_user) raced with NETLINK_RDMA RDMA_NLDEV_CMD_RES_SRQ_GET; incoming RoCE/IB packets never invoke destroy_srq or fill_res_srq_entry.\nAC:L - The attacker controls both sides: one thread DESTROY_SRQs the handle while another issues RDMA_NLDEV_CMD_RES_SRQ_GET so nldev_res_get_srq_doit → rdma_restrack_get_byid still finds the SRQ during ops.destroy_srq (e.g. hns_roce_destroy_srq's mailbox and wait_for_completion); no uninfluenced victim state is required.\nPR:L - ib_uverbs_open() has no capable() check and uverbs_devnode() creates /dev/infiniband/uverbs* mode 0666, and RDMA_NLDEV_CMD_RES_SRQ_GET is registered without RDMA_NL_ADMIN_PERM, so an unprivileged local user on a host with an RDMA device can create an SRQ and dump it via nldev.\nUI:N - The attacker opens uverbs, creates the SRQ, and races DESTROY_SRQ with their own NETLINK_RDMA RES_SRQ_GET; no other user must mount, click, or otherwise act.\nS:U - The use-after-free is of the host-kernel ib_srq and its vendor SRQ resources inside ib_core; it does not escape a VM, bypass an IOMMU, or otherwise leave the kernel's authority.\nC:H - After ops.destroy_srq frees vendor state (hns free_srqc/free_srq_buf, rxe_srq_cleanup→rxe_queue_cleanup, bnxt_qplib_destroy_srq kfree(swq)), the SRQ is still in restrack so fill_res_srq_entry/fill_res_srq_entry_raw (hns query_srqc, bnxt_qplib_read_context) read the freed object, a UAF disclosure primitive.\nI:H - The same UAF leaves vendor SRQ allocations (bnxt swq, siw recvq, rxe queue, mlx5 umem) freed while nldev still holds the restrack kref in fill_res_srq_entry, so heap reuse of those objects yields a write/control-flow primitive.\nA:H - fill_res_srq_entry walking an SRQ whose vendor buffers were already released by destroy_srq (kfree/vfree of swq, recvq, or rxe queue) can oops the kernel, so availability impact is high even without a full exploit."}]}],"affected":[{"product":"Linux","vendor":"Linux","defaultStatus":"unaffected","repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/infiniband/core/verbs.c"],"versions":[{"version":"48f8a70e899fa4d9c8f00369f482f0382173ece9","lessThan":"a5bfd9fe05d5cebbd3e447bf7f7b2c663007d8b9","status":"affected","versionType":"git"},{"version":"48f8a70e899fa4d9c8f00369f482f0382173ece9","lessThan":"d3d0eabe6e39b024deb3e085e2d408d037e967c3","status":"affected","versionType":"git"},{"version":"48f8a70e899fa4d9c8f00369f482f0382173ece9","lessThan":"9c704383529044c02122f85a2a9a42cbf14a07a6","status":"affected","versionType":"git"},{"version":"48f8a70e899fa4d9c8f00369f482f0382173ece9","lessThan":"bedd7dee72588c838f5b67197ea8b387e7beb918","status":"affected","versionType":"git"},{"version":"48f8a70e899fa4d9c8f00369f482f0382173ece9","lessThan":"95c992c869df54a6a7061f5f3fb6400244f2af8f","status":"affected","versionType":"git"},{"version":"48f8a70e899fa4d9c8f00369f482f0382173ece9","lessThan":"88244ecc71cc0b3ed200f5ef7ddea6686adfd730","status":"affected","versionType":"git"}]},{"product":"Linux","vendor":"Linux","defaultStatus":"affected","repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/infiniband/core/verbs.c"],"versions":[{"version":"5.13","status":"affected"},{"version":"0","lessThan":"5.13","status":"unaffected","versionType":"semver"},{"version":"6.1.188","lessThanOrEqual":"6.1.*","status":"unaffected","versionType":"semver"},{"version":"6.6.157","lessThanOrEqual":"6.6.*","status":"unaffected","versionType":"semver"},{"version":"6.12.110","lessThanOrEqual":"6.12.*","status":"unaffected","versionType":"semver"},{"version":"6.18.52","lessThanOrEqual":"6.18.*","status":"unaffected","versionType":"semver"},{"version":"7.2.6","lessThanOrEqual":"7.2.*","status":"unaffected","versionType":"semver"},{"version":"7.3-rc1","lessThanOrEqual":"*","status":"unaffected","versionType":"original_commit_for_fix"}]}],"cpeApplicability":[{"nodes":[{"operator":"OR","negate":false,"cpeMatch":[{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.13","versionEndExcluding":"6.1.188"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.13","versionEndExcluding":"6.6.157"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.13","versionEndExcluding":"6.12.110"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.13","versionEndExcluding":"6.18.52"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.13","versionEndExcluding":"7.2.6"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.13","versionEndExcluding":"7.3-rc1"}]}]}],"references":[{"url":"https://git.kernel.org/stable/c/a5bfd9fe05d5cebbd3e447bf7f7b2c663007d8b9"},{"url":"https://git.kernel.org/stable/c/d3d0eabe6e39b024deb3e085e2d408d037e967c3"},{"url":"https://git.kernel.org/stable/c/9c704383529044c02122f85a2a9a42cbf14a07a6"},{"url":"https://git.kernel.org/stable/c/bedd7dee72588c838f5b67197ea8b387e7beb918"},{"url":"https://git.kernel.org/stable/c/95c992c869df54a6a7061f5f3fb6400244f2af8f"},{"url":"https://git.kernel.org/stable/c/88244ecc71cc0b3ed200f5ef7ddea6686adfd730"}],"title":"RDMA/core: Fix potential use after free in ib_destroy_srq_user()","x_generator":{"engine":"bippy-1.2.0"}}}}