{"dataType":"CVE_RECORD","dataVersion":"5.2","cveMetadata":{"cveId":"CVE-2023-53539","assignerOrgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","state":"PUBLISHED","assignerShortName":"Linux","dateReserved":"2025-10-04T15:14:15.919Z","datePublished":"2025-10-04T15:16:49.379Z","dateUpdated":"2026-08-05T09:14:42.566Z"},"containers":{"cna":{"providerMetadata":{"orgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","shortName":"Linux","dateUpdated":"2026-08-05T09:14:42.566Z"},"descriptions":[{"lang":"en","value":"In the Linux kernel, the following vulnerability has been resolved:\n\nRDMA/rxe: Fix incomplete state save in rxe_requester\n\nIf a send packet is dropped by the IP layer in rxe_requester()\nthe call to rxe_xmit_packet() can fail with err == -EAGAIN.\nTo recover, the state of the wqe is restored to the state before\nthe packet was sent so it can be resent. However, the routines\nthat save and restore the state miss a significnt part of the\nvariable state in the wqe, the dma struct which is used to process\nthrough the sge table. And, the state is not saved before the packet\nis built which modifies the dma struct.\n\nUnder heavy stress testing with many QPs on a fast node sending\nlarge messages to a slow node dropped packets are observed and\nthe resent packets are corrupted because the dma struct was not\nrestored. This patch fixes this behavior and allows the test cases\nto succeed."}],"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 - rxe_requester() is the local transmit path, entered only by work requests posted from the local node via /dev/infiniband/uverbs* (ibv_post_send) or by in-kernel ULPs over Soft-RoCE; a remote peer cannot post WRs into this queue. The triggering error also originates in the local IP/qdisc layer.\nAC:L - The attacker fully controls the condition that produces the -EAGAIN drop — the commit itself describes it arising from many QPs sending large messages, and an unprivileged user can additionally saturate the outbound qdisc of the same netdev to force NET_XMIT_DROP on demand. The rollback path is then hit deterministically and can be retried indefinitely.\nPR:L - Only an unprivileged local account is needed: rdma-core udev rules expose /dev/infiniband/uverbs* mode 0666, so any user (including inside a container) can create QPs and post sends once an rxe link exists. No capability check gates the requester path.\nUI:N - The attacker's own posted sends plus self-generated network congestion drive the entire sequence; no action by any other user or administrator is required.\nS:U - The corrupted state and its effects stay within the kernel's RDMA subsystem and the QPs of the same security authority; no VM, IOMMU, or sandbox boundary is crossed.\nC:H - The desynchronized dma cursor makes the requester transmit a different region of registered memory than the PSN/opcode declares, so registered buffer contents are delivered to memory offsets the application never intended, and short/zero-payload packets (e.g. ATOMIC_WRITE with resid already 0) drive the receiving responder to consume data past the declared payload. Treating the state corruption as leverageable for disclosure, this is scored High.\nI:H - This is the core impact — resent packets carry the wrong SGE data, so a multi-packet SEND or RDMA WRITE silently writes truncated/shifted content into the peer's registered memory while the local completion still reports IB_WC_SUCCESS, giving undetected corruption of application and (for NFS/RDMA, iSER, NVMe-oF, SMB Direct over rxe) on-disk data.\nA:H - When the dropped packet was the LAST of a message, the retry emits a zero-length END packet that the responder rejects with RESPST_ERR_LENGTH (rxe_resp.c:378-382), and early-terminated WRITEs trip the pktlen check in check_rkey(); either produces NAK_INVALID_REQUEST, driving both RC QPs into the error state and destroying the connection along with all in-flight and queued work."}]}],"affected":[{"product":"Linux","vendor":"Linux","defaultStatus":"unaffected","repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/infiniband/sw/rxe/rxe_req.c"],"versions":[{"version":"3050b99850247695cb07a5c15265afcc08bcf400","lessThan":"70518f3aaf5a059b691867d7d2d46b999319656a","status":"affected","versionType":"git"},{"version":"3050b99850247695cb07a5c15265afcc08bcf400","lessThan":"2f2a6422287fe29f9343247d77b645100ece0652","status":"affected","versionType":"git"},{"version":"3050b99850247695cb07a5c15265afcc08bcf400","lessThan":"255c0e60e1d16874fc151358d94bc8df661600dd","status":"affected","versionType":"git"},{"version":"3050b99850247695cb07a5c15265afcc08bcf400","lessThan":"5d122db2ff80cd2aed4dcd630befb56b51ddf947","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/sw/rxe/rxe_req.c"],"versions":[{"version":"4.8","status":"affected"},{"version":"0","lessThan":"4.8","status":"unaffected","versionType":"semver"},{"version":"6.1.53","lessThanOrEqual":"6.1.*","status":"unaffected","versionType":"semver"},{"version":"6.4.16","lessThanOrEqual":"6.4.*","status":"unaffected","versionType":"semver"},{"version":"6.5.3","lessThanOrEqual":"6.5.*","status":"unaffected","versionType":"semver"},{"version":"6.6","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":"4.8","versionEndExcluding":"6.1.53"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.8","versionEndExcluding":"6.4.16"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.8","versionEndExcluding":"6.5.3"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.8","versionEndExcluding":"6.6"}]}]}],"references":[{"url":"https://git.kernel.org/stable/c/70518f3aaf5a059b691867d7d2d46b999319656a"},{"url":"https://git.kernel.org/stable/c/2f2a6422287fe29f9343247d77b645100ece0652"},{"url":"https://git.kernel.org/stable/c/255c0e60e1d16874fc151358d94bc8df661600dd"},{"url":"https://git.kernel.org/stable/c/5d122db2ff80cd2aed4dcd630befb56b51ddf947"}],"title":"RDMA/rxe: Fix incomplete state save in rxe_requester","x_generator":{"engine":"bippy-1.2.0"}},"adp":[{"metrics":[{"other":{"type":"ssvc","content":{"timestamp":"2026-06-10T20:40:24.748179Z","id":"CVE-2023-53539","options":[{"Exploitation":"none"},{"Automatable":"no"},{"Technical Impact":"partial"}],"role":"CISA Coordinator","version":"2.0.3"}}}],"title":"CISA ADP Vulnrichment","providerMetadata":{"orgId":"134c704f-9b21-4f2e-91b3-4a467353bcc0","shortName":"CISA-ADP","dateUpdated":"2026-06-16T15:46:10.080Z"}}]}}