{"id":"CVE-2025-22088","state":"PUBLISHED","title":"RDMA/erdma: Prevent use-after-free in erdma_accept_newconn()","description":"In the Linux kernel, the following vulnerability has been resolved:\n\nRDMA/erdma: Prevent use-after-free in erdma_accept_newconn()\n\nAfter the erdma_cep_put(new_cep) being called, new_cep will be freed,\nand the following dereference will cause a UAF problem. Fix this issue.","publishedAt":"2025-04-16T14:12:41.065Z","updatedAt":"2026-08-05T11:56:42.090Z","severity":{"score":9.8,"label":"Critical","version":"3.1","vector":"CVSS:3.1/AV:N/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":"920d93eac8b97778fef48f34f10e58ddf870fc2a","status":"affected","lessThan":"bc1db4d8f1b0dc480d7d745a60a8cc94ce2badd4","versionType":"git"},{"version":"920d93eac8b97778fef48f34f10e58ddf870fc2a","status":"affected","lessThan":"667a628ab67d359166799fad89b3c6909599558a","versionType":"git"},{"version":"920d93eac8b97778fef48f34f10e58ddf870fc2a","status":"affected","lessThan":"a114d25d584c14019d31dbf2163780c47415a187","versionType":"git"},{"version":"920d93eac8b97778fef48f34f10e58ddf870fc2a","status":"affected","lessThan":"78411a133312ce7d8a3239c76a8fd85bca1cc10f","versionType":"git"},{"version":"920d93eac8b97778fef48f34f10e58ddf870fc2a","status":"affected","lessThan":"7aa6bb5276d9fec98deb05615a086eeb893854ad","versionType":"git"},{"version":"920d93eac8b97778fef48f34f10e58ddf870fc2a","status":"affected","lessThan":"83437689249e6a17b25e27712fbee292e42e7855","versionType":"git"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/infiniband/hw/erdma/erdma_cm.c"]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","versions":[{"version":"6.0","status":"affected"},{"version":"0","status":"unaffected","lessThan":"6.0","versionType":"semver"},{"version":"6.1.134","status":"unaffected","lessThanOrEqual":"6.1.*","versionType":"semver"},{"version":"6.6.87","status":"unaffected","lessThanOrEqual":"6.6.*","versionType":"semver"},{"version":"6.12.23","status":"unaffected","lessThanOrEqual":"6.12.*","versionType":"semver"},{"version":"6.13.11","status":"unaffected","lessThanOrEqual":"6.13.*","versionType":"semver"},{"version":"6.14.2","status":"unaffected","lessThanOrEqual":"6.14.*","versionType":"semver"},{"version":"6.15","status":"unaffected","lessThanOrEqual":"*","versionType":"original_commit_for_fix"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/infiniband/hw/erdma/erdma_cm.c"]}],"references":["https://git.kernel.org/stable/c/bc1db4d8f1b0dc480d7d745a60a8cc94ce2badd4","https://git.kernel.org/stable/c/667a628ab67d359166799fad89b3c6909599558a","https://git.kernel.org/stable/c/a114d25d584c14019d31dbf2163780c47415a187","https://git.kernel.org/stable/c/78411a133312ce7d8a3239c76a8fd85bca1cc10f","https://git.kernel.org/stable/c/7aa6bb5276d9fec98deb05615a086eeb893854ad","https://git.kernel.org/stable/c/83437689249e6a17b25e27712fbee292e42e7855","https://lists.debian.org/debian-lts-announce/2025/05/msg00045.html"],"weaknesses":["CWE-416"],"ingestedAt":"2026-10-29T20:08:39.238Z","source":{"repository":"CVEProject/cvelistV5","path":"cves/2025/22xxx/CVE-2025-22088.json","commit":"556c9d3a8cd17e218bb8e452ba7cd619a384ff47"},"raw":{"dataType":"CVE_RECORD","dataVersion":"5.2","cveMetadata":{"cveId":"CVE-2025-22088","state":"PUBLISHED","datePublished":"2025-04-16T14:12:41.065Z","dateUpdated":"2026-08-05T11:56:42.090Z","assignerShortName":"Linux","assignerOrgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateReserved":"2024-12-29T08:45:45.817Z"},"containers":{"cna":{"title":"RDMA/erdma: Prevent use-after-free in erdma_accept_newconn()","descriptions":[{"lang":"en","value":"In the Linux kernel, the following vulnerability has been resolved:\n\nRDMA/erdma: Prevent use-after-free in erdma_accept_newconn()\n\nAfter the erdma_cep_put(new_cep) being called, new_cep will be freed,\nand the following dereference will cause a UAF problem. Fix this issue."}],"affected":[{"vendor":"Linux","product":"Linux","defaultStatus":"unaffected","versions":[{"version":"920d93eac8b97778fef48f34f10e58ddf870fc2a","status":"affected","lessThan":"bc1db4d8f1b0dc480d7d745a60a8cc94ce2badd4","versionType":"git"},{"version":"920d93eac8b97778fef48f34f10e58ddf870fc2a","status":"affected","lessThan":"667a628ab67d359166799fad89b3c6909599558a","versionType":"git"},{"version":"920d93eac8b97778fef48f34f10e58ddf870fc2a","status":"affected","lessThan":"a114d25d584c14019d31dbf2163780c47415a187","versionType":"git"},{"version":"920d93eac8b97778fef48f34f10e58ddf870fc2a","status":"affected","lessThan":"78411a133312ce7d8a3239c76a8fd85bca1cc10f","versionType":"git"},{"version":"920d93eac8b97778fef48f34f10e58ddf870fc2a","status":"affected","lessThan":"7aa6bb5276d9fec98deb05615a086eeb893854ad","versionType":"git"},{"version":"920d93eac8b97778fef48f34f10e58ddf870fc2a","status":"affected","lessThan":"83437689249e6a17b25e27712fbee292e42e7855","versionType":"git"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/infiniband/hw/erdma/erdma_cm.c"]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","versions":[{"version":"6.0","status":"affected"},{"version":"0","status":"unaffected","lessThan":"6.0","versionType":"semver"},{"version":"6.1.134","status":"unaffected","lessThanOrEqual":"6.1.*","versionType":"semver"},{"version":"6.6.87","status":"unaffected","lessThanOrEqual":"6.6.*","versionType":"semver"},{"version":"6.12.23","status":"unaffected","lessThanOrEqual":"6.12.*","versionType":"semver"},{"version":"6.13.11","status":"unaffected","lessThanOrEqual":"6.13.*","versionType":"semver"},{"version":"6.14.2","status":"unaffected","lessThanOrEqual":"6.14.*","versionType":"semver"},{"version":"6.15","status":"unaffected","lessThanOrEqual":"*","versionType":"original_commit_for_fix"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/infiniband/hw/erdma/erdma_cm.c"]}],"references":[{"url":"https://git.kernel.org/stable/c/bc1db4d8f1b0dc480d7d745a60a8cc94ce2badd4"},{"url":"https://git.kernel.org/stable/c/667a628ab67d359166799fad89b3c6909599558a"},{"url":"https://git.kernel.org/stable/c/a114d25d584c14019d31dbf2163780c47415a187"},{"url":"https://git.kernel.org/stable/c/78411a133312ce7d8a3239c76a8fd85bca1cc10f"},{"url":"https://git.kernel.org/stable/c/7aa6bb5276d9fec98deb05615a086eeb893854ad"},{"url":"https://git.kernel.org/stable/c/83437689249e6a17b25e27712fbee292e42e7855"}],"metrics":[{"cvssV3_1":{"version":"3.1","vectorString":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H","baseScore":9.8,"baseSeverity":"CRITICAL"},"scenarios":[{"lang":"en","value":"AV:N - The vulnerable function is the erdma iWARP CM passive-accept handler, driven entirely by remote TCP connections to the RDMA CM listening socket created by `erdma_create_listen()`; the child socket's TCP_ESTABLISHED transition invokes the inherited `erdma_cm_llp_state_change()` callback and queues the ACCEPT work. iWARP/MPA CM traffic is ordinary routable IPv4 TCP, so any host that can reach the erdma interface can drive this path.\nAC:L - The attacker fully controls the connection flood that reaches the code and the abort timing that makes `kernel_accept()` fail (upstream's own comment on the identical siw path attributes it to \"Connection already aborted by peer\"), and the same unbounded flood — each pending connection pinning a CEP, four work structs, and a socket until the MPA timeout — drives the GFP_KERNEL failures in `erdma_cm_alloc_work()`/`sock_create_lite()`. No condition beyond the attacker's influence is required.\nPR:N - `erdma_accept_newconn()` executes at the raw TCP accept stage, before MPA request/reply negotiation and before any CM upcall to userspace, so no authentication or authorization has occurred. An unauthenticated remote peer only needs to open TCP connections to the listening port.\nUI:N - The path is triggered purely by inbound TCP connections processed by the kernel workqueue; no action by any local user or administrator is needed beyond the RDMA service already listening.\nS:U - The corruption is confined to kernel heap memory managed by the same kernel security authority; no VM, IOMMU, or sandbox boundary is crossed.\nC:H - The use-after-free on `struct erdma_cep` lets an attacker who grooms the freed slab slot (trivially, via more connections) corrupt a reallocated kernel object, which per standard UAF assessment can be leveraged into arbitrary kernel memory disclosure.\nI:H - The dangling store writes 8 zero bytes at a fixed offset into a freed kmalloc object, giving a controllable-target write that can zero a pointer, length, or refcount in a sprayed victim object or clobber the SLUB freelist pointer — a primitive escalatable to arbitrary write and control-flow hijack.\nA:H - Even unexploited, the write into freed slab memory corrupts the allocator and adjacent objects, reliably producing a kernel oops or panic, and it can be triggered repeatedly by an unauthenticated remote attacker."}]}],"providerMetadata":{"shortName":"Linux","orgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateUpdated":"2026-08-05T11:56:42.090Z"},"cpeApplicability":[{"nodes":[{"operator":"OR","negate":false,"cpeMatch":[{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"6.0","versionEndExcluding":"6.1.134"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"6.0","versionEndExcluding":"6.6.87"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"6.0","versionEndExcluding":"6.12.23"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"6.0","versionEndExcluding":"6.13.11"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"6.0","versionEndExcluding":"6.14.2"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"6.0","versionEndExcluding":"6.15"}]}]}],"x_generator":{"engine":"bippy-1.2.0"}},"adp":[{"title":"CISA ADP Vulnrichment","metrics":[{"cvssV3_1":{"scope":"UNCHANGED","version":"3.1","baseScore":7.8,"attackVector":"LOCAL","baseSeverity":"HIGH","vectorString":"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H","integrityImpact":"HIGH","userInteraction":"NONE","attackComplexity":"LOW","availabilityImpact":"HIGH","privilegesRequired":"LOW","confidentialityImpact":"HIGH"}},{"other":{"type":"ssvc","content":{"id":"CVE-2025-22088","role":"CISA Coordinator","options":[{"Exploitation":"none"},{"Automatable":"no"},{"Technical Impact":"total"}],"version":"2.0.3","timestamp":"2025-04-21T14:57:39.656411Z"}}}],"problemTypes":[{"descriptions":[{"cweId":"CWE-416","lang":"en","type":"CWE","description":"CWE-416 Use After Free"}]}],"providerMetadata":{"shortName":"CISA-ADP","orgId":"134c704f-9b21-4f2e-91b3-4a467353bcc0","dateUpdated":"2025-04-21T15:01:46.305Z"}},{"title":"CVE Program Container","references":[{"url":"https://lists.debian.org/debian-lts-announce/2025/05/msg00045.html"}],"providerMetadata":{"shortName":"CVE","orgId":"af854a3a-2127-422b-91ae-364da2661108","dateUpdated":"2025-11-03T19:42:07.589Z"}}]}}}