{"id":"CVE-2025-21885","state":"PUBLISHED","title":"RDMA/bnxt_re: Fix the page details for the srq created by kernel consumers","description":"In the Linux kernel, the following vulnerability has been resolved:\n\nRDMA/bnxt_re: Fix the page details for the srq created by kernel consumers\n\nWhile using nvme target with use_srq on, below kernel panic is noticed.\n\n[  549.698111] bnxt_en 0000:41:00.0 enp65s0np0: FEC autoneg off encoding: Clause 91 RS(544,514)\n[  566.393619] Oops: divide error: 0000 [#1] PREEMPT SMP NOPTI\n..\n[  566.393799]  <TASK>\n[  566.393807]  ? __die_body+0x1a/0x60\n[  566.393823]  ? die+0x38/0x60\n[  566.393835]  ? do_trap+0xe4/0x110\n[  566.393847]  ? bnxt_qplib_alloc_init_hwq+0x1d4/0x580 [bnxt_re]\n[  566.393867]  ? bnxt_qplib_alloc_init_hwq+0x1d4/0x580 [bnxt_re]\n[  566.393881]  ? do_error_trap+0x7c/0x120\n[  566.393890]  ? bnxt_qplib_alloc_init_hwq+0x1d4/0x580 [bnxt_re]\n[  566.393911]  ? exc_divide_error+0x34/0x50\n[  566.393923]  ? bnxt_qplib_alloc_init_hwq+0x1d4/0x580 [bnxt_re]\n[  566.393939]  ? asm_exc_divide_error+0x16/0x20\n[  566.393966]  ? bnxt_qplib_alloc_init_hwq+0x1d4/0x580 [bnxt_re]\n[  566.393997]  bnxt_qplib_create_srq+0xc9/0x340 [bnxt_re]\n[  566.394040]  bnxt_re_create_srq+0x335/0x3b0 [bnxt_re]\n[  566.394057]  ? srso_return_thunk+0x5/0x5f\n[  566.394068]  ? __init_swait_queue_head+0x4a/0x60\n[  566.394090]  ib_create_srq_user+0xa7/0x150 [ib_core]\n[  566.394147]  nvmet_rdma_queue_connect+0x7d0/0xbe0 [nvmet_rdma]\n[  566.394174]  ? lock_release+0x22c/0x3f0\n[  566.394187]  ? srso_return_thunk+0x5/0x5f\n\nPage size and shift info is set only for the user space SRQs.\nSet page size and page shift for kernel space SRQs also.","publishedAt":"2025-03-27T14:57:13.219Z","updatedAt":"2026-10-30T12:20:55.350Z","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":"0c4dcd602817502bb3dced7a834a13ef717d65a4","status":"affected","lessThan":"c07040d450581b50db3311d1348c4018ef704de0","versionType":"git"},{"version":"0c4dcd602817502bb3dced7a834a13ef717d65a4","status":"affected","lessThan":"d63d73d045e4874b901ab7b1bde05449659355c7","versionType":"git"},{"version":"0c4dcd602817502bb3dced7a834a13ef717d65a4","status":"affected","lessThan":"722c3db62bf60cd23acbdc8c4f445bfedae4498e","versionType":"git"},{"version":"0c4dcd602817502bb3dced7a834a13ef717d65a4","status":"affected","lessThan":"2cf8e6b52aecb8fbb71c41fe5add3212814031a2","versionType":"git"},{"version":"0c4dcd602817502bb3dced7a834a13ef717d65a4","status":"affected","lessThan":"b66535356a4834a234f99e16a97eb51f2c6c5a7d","versionType":"git"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/infiniband/hw/bnxt_re/ib_verbs.c"]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","versions":[{"version":"5.7","status":"affected"},{"version":"0","status":"unaffected","lessThan":"5.7","versionType":"semver"},{"version":"6.1.191","status":"unaffected","lessThanOrEqual":"6.1.*","versionType":"semver"},{"version":"6.6.160","status":"unaffected","lessThanOrEqual":"6.6.*","versionType":"semver"},{"version":"6.12.18","status":"unaffected","lessThanOrEqual":"6.12.*","versionType":"semver"},{"version":"6.13.6","status":"unaffected","lessThanOrEqual":"6.13.*","versionType":"semver"},{"version":"6.14","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/bnxt_re/ib_verbs.c"]}],"references":["https://git.kernel.org/stable/c/c07040d450581b50db3311d1348c4018ef704de0","https://git.kernel.org/stable/c/d63d73d045e4874b901ab7b1bde05449659355c7","https://git.kernel.org/stable/c/722c3db62bf60cd23acbdc8c4f445bfedae4498e","https://git.kernel.org/stable/c/2cf8e6b52aecb8fbb71c41fe5add3212814031a2","https://git.kernel.org/stable/c/b66535356a4834a234f99e16a97eb51f2c6c5a7d"],"weaknesses":[],"ingestedAt":"2026-10-30T12:38:04.623Z","source":{"repository":"CVEProject/cvelistV5","path":"cves/2025/21xxx/CVE-2025-21885.json","commit":"db8103c5921aac81d5d90efcf3745980dafabf49","baselineCommit":"556c9d3a8cd17e218bb8e452ba7cd619a384ff47"},"raw":{"dataType":"CVE_RECORD","dataVersion":"5.2","cveMetadata":{"cveId":"CVE-2025-21885","state":"PUBLISHED","datePublished":"2025-03-27T14:57:13.219Z","dateUpdated":"2026-10-30T12:20:55.350Z","assignerShortName":"Linux","assignerOrgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateReserved":"2024-12-29T08:45:45.782Z"},"containers":{"cna":{"title":"RDMA/bnxt_re: Fix the page details for the srq created by kernel consumers","descriptions":[{"lang":"en","value":"In the Linux kernel, the following vulnerability has been resolved:\n\nRDMA/bnxt_re: Fix the page details for the srq created by kernel consumers\n\nWhile using nvme target with use_srq on, below kernel panic is noticed.\n\n[  549.698111] bnxt_en 0000:41:00.0 enp65s0np0: FEC autoneg off encoding: Clause 91 RS(544,514)\n[  566.393619] Oops: divide error: 0000 [#1] PREEMPT SMP NOPTI\n..\n[  566.393799]  <TASK>\n[  566.393807]  ? __die_body+0x1a/0x60\n[  566.393823]  ? die+0x38/0x60\n[  566.393835]  ? do_trap+0xe4/0x110\n[  566.393847]  ? bnxt_qplib_alloc_init_hwq+0x1d4/0x580 [bnxt_re]\n[  566.393867]  ? bnxt_qplib_alloc_init_hwq+0x1d4/0x580 [bnxt_re]\n[  566.393881]  ? do_error_trap+0x7c/0x120\n[  566.393890]  ? bnxt_qplib_alloc_init_hwq+0x1d4/0x580 [bnxt_re]\n[  566.393911]  ? exc_divide_error+0x34/0x50\n[  566.393923]  ? bnxt_qplib_alloc_init_hwq+0x1d4/0x580 [bnxt_re]\n[  566.393939]  ? asm_exc_divide_error+0x16/0x20\n[  566.393966]  ? bnxt_qplib_alloc_init_hwq+0x1d4/0x580 [bnxt_re]\n[  566.393997]  bnxt_qplib_create_srq+0xc9/0x340 [bnxt_re]\n[  566.394040]  bnxt_re_create_srq+0x335/0x3b0 [bnxt_re]\n[  566.394057]  ? srso_return_thunk+0x5/0x5f\n[  566.394068]  ? __init_swait_queue_head+0x4a/0x60\n[  566.394090]  ib_create_srq_user+0xa7/0x150 [ib_core]\n[  566.394147]  nvmet_rdma_queue_connect+0x7d0/0xbe0 [nvmet_rdma]\n[  566.394174]  ? lock_release+0x22c/0x3f0\n[  566.394187]  ? srso_return_thunk+0x5/0x5f\n\nPage size and shift info is set only for the user space SRQs.\nSet page size and page shift for kernel space SRQs also."}],"affected":[{"vendor":"Linux","product":"Linux","defaultStatus":"unaffected","versions":[{"version":"0c4dcd602817502bb3dced7a834a13ef717d65a4","status":"affected","lessThan":"c07040d450581b50db3311d1348c4018ef704de0","versionType":"git"},{"version":"0c4dcd602817502bb3dced7a834a13ef717d65a4","status":"affected","lessThan":"d63d73d045e4874b901ab7b1bde05449659355c7","versionType":"git"},{"version":"0c4dcd602817502bb3dced7a834a13ef717d65a4","status":"affected","lessThan":"722c3db62bf60cd23acbdc8c4f445bfedae4498e","versionType":"git"},{"version":"0c4dcd602817502bb3dced7a834a13ef717d65a4","status":"affected","lessThan":"2cf8e6b52aecb8fbb71c41fe5add3212814031a2","versionType":"git"},{"version":"0c4dcd602817502bb3dced7a834a13ef717d65a4","status":"affected","lessThan":"b66535356a4834a234f99e16a97eb51f2c6c5a7d","versionType":"git"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/infiniband/hw/bnxt_re/ib_verbs.c"]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","versions":[{"version":"5.7","status":"affected"},{"version":"0","status":"unaffected","lessThan":"5.7","versionType":"semver"},{"version":"6.1.191","status":"unaffected","lessThanOrEqual":"6.1.*","versionType":"semver"},{"version":"6.6.160","status":"unaffected","lessThanOrEqual":"6.6.*","versionType":"semver"},{"version":"6.12.18","status":"unaffected","lessThanOrEqual":"6.12.*","versionType":"semver"},{"version":"6.13.6","status":"unaffected","lessThanOrEqual":"6.13.*","versionType":"semver"},{"version":"6.14","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/bnxt_re/ib_verbs.c"]}],"references":[{"url":"https://git.kernel.org/stable/c/c07040d450581b50db3311d1348c4018ef704de0"},{"url":"https://git.kernel.org/stable/c/d63d73d045e4874b901ab7b1bde05449659355c7"},{"url":"https://git.kernel.org/stable/c/722c3db62bf60cd23acbdc8c4f445bfedae4498e"},{"url":"https://git.kernel.org/stable/c/2cf8e6b52aecb8fbb71c41fe5add3212814031a2"},{"url":"https://git.kernel.org/stable/c/b66535356a4834a234f99e16a97eb51f2c6c5a7d"}],"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 crash is reached from `nvmet_rdma_queue_connect()`, the handler for an inbound RDMA CM connect request on the NVMe-oF target's listening endpoint; bnxt_re is a RoCE device and RoCEv2 is UDP/IP-encapsulated and fully routable, so a remote off-segment initiator can drive the path.\nAC:L - The divide-by-zero is deterministic — `sg_info.pgsize` is unconditionally 0 for every kernel-created SRQ — so the very first connect request from the attacker triggers it with no race, timing, or memory-layout dependency.\nPR:N - SRQ allocation happens in `nvmet_rdma_find_get_device()` at the top of the connect-request handler, before the NVMe fabrics Connect command, host-NQN allow-list checks, or any authentication, so an entirely unauthenticated remote peer reaches it.\nUI:N - The target processes inbound RDMA CM connect requests autonomously; no local user or administrator action is needed once the nvmet-rdma port is listening.\nS:U - The fault is a divide error inside the kernel affecting only the host kernel's own resources, with no crossing of a VM, IOMMU, or other security authority boundary.\nC:N - The zero divisor causes a `#DE` trap before any allocation, pointer arithmetic, or buffer access occurs, so no out-of-bounds read or information disclosure primitive exists.\nI:N - No memory is corrupted or written out of bounds — the failure is a CPU exception on the division itself, giving no write or control-flow primitive.\nA:H - The divide error Oopses the RDMA CM workqueue thread while `device_list_mutex` and the cma `handler_mutex` are held, permanently deadlocking nvmet-rdma and RDMA connection management, and produces a full kernel panic with `panic_on_oops=1`."}]}],"providerMetadata":{"shortName":"Linux","orgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateUpdated":"2026-10-30T12:20:55.350Z"},"cpeApplicability":[{"nodes":[{"operator":"OR","negate":false,"cpeMatch":[{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.7","versionEndExcluding":"6.1.191"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.7","versionEndExcluding":"6.6.160"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.7","versionEndExcluding":"6.12.18"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.7","versionEndExcluding":"6.13.6"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.7","versionEndExcluding":"6.14"}]}]}],"x_generator":{"engine":"bippy-1.2.0"}},"adp":[{"title":"CISA ADP Vulnrichment","metrics":[{"other":{"type":"ssvc","content":{"id":"CVE-2025-21885","role":"CISA Coordinator","options":[{"Exploitation":"none"},{"Automatable":"yes"},{"Technical Impact":"partial"}],"version":"2.0.3","timestamp":"2026-10-15T21:43:31.014423Z"}}}],"providerMetadata":{"shortName":"CISA-ADP","orgId":"134c704f-9b21-4f2e-91b3-4a467353bcc0","dateUpdated":"2026-10-15T21:51:54.840Z"}}]}}}