{ "dataType": "CVE_RECORD", "dataVersion": "5.2", "cveMetadata": { "cveId": "CVE-2024-40992", "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67", "state": "PUBLISHED", "assignerShortName": "Linux", "dateReserved": "2024-07-12T12:17:45.605Z", "datePublished": "2024-07-12T12:37:35.800Z", "dateUpdated": "2026-08-05T11:34:30.286Z" }, "containers": { "cna": { "providerMetadata": { "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67", "shortName": "Linux", "dateUpdated": "2026-08-05T11:34:30.286Z" }, "descriptions": [ { "lang": "en", "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nRDMA/rxe: Fix responder length checking for UD request packets\n\nAccording to the IBA specification:\nIf a UD request packet is detected with an invalid length, the request\nshall be an invalid request and it shall be silently dropped by\nthe responder. The responder then waits for a new request packet.\n\ncommit 689c5421bfe0 (\"RDMA/rxe: Fix incorrect responder length checking\")\ndefers responder length check for UD QPs in function `copy_data`.\nBut it introduces a regression issue for UD QPs.\n\nWhen the packet size is too large to fit in the receive buffer.\n`copy_data` will return error code -EINVAL. Then `send_data_in`\nwill return RESPST_ERR_MALFORMED_WQE. UD QP will transfer into\nERROR state." } ], "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 rxe driver processes RoCEv2 packets received on UDP port 4791 from arbitrary remote peers over routed IP networks, and the malformed UD request is handled directly in the responder receive path. No adjacency or local access is required.\nAC:L - A single crafted UD SEND packet whose payload exceeds the receiver's posted receive buffer deterministically triggers the wrong error class and the QP error transition; there is no race, no memory-layout dependency, and the GSI Q_Key is a hardcoded well-known constant.\nPR:N - RoCE provides no authentication, check_addr() performs no source validation for UD/GSI QPs, the default full P_Key always matches, and QPN 1 uses the fixed GSI_QKEY value — so a completely unauthenticated off-system attacker can reach the vulnerable code.\nUI:N - The vulnerability is triggered entirely by an inbound packet processed asynchronously by the responder task; no action by any local user or application is needed.\nS:U - The impact is confined to the kernel's RDMA subsystem on the target host, within the same security authority; no VM, IOMMU, or sandbox boundary is crossed.\nC:N - copy_data() still bounds the transfer against dma.resid, so no out-of-bounds read occurs and no memory contents are disclosed; the defect is only the error code returned on an already-detected overlong payload.\nI:N - There is no memory corruption or out-of-bounds write — the receive-buffer copy remains bounded and the failure is reported to the application via an error completion, so no data is silently modified.\nA:H - A single unauthenticated packet permanently forces the UD/GSI queue pair into IB_QPS_ERR via rxe_qp_error(), flushing all work requests and rendering the QP unusable until the application tears it down and recreates it; killing QP1 disables the MAD agent and thus RDMA-CM connection establishment for the entire device, and one multicast packet can destroy every QP in a group." } ] } ], "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_resp.c" ], "versions": [ { "version": "689c5421bfe0eac65526bd97a466b9590a6aad3c", "lessThan": "163868ec1f6c610d16da9e458fe1dd7d5de97341", "status": "affected", "versionType": "git" }, { "version": "689c5421bfe0eac65526bd97a466b9590a6aad3c", "lessThan": "943c94f41dfe36536dc9aaa12c9efdf548ceb996", "status": "affected", "versionType": "git" }, { "version": "689c5421bfe0eac65526bd97a466b9590a6aad3c", "lessThan": "f67ac0061c7614c1548963d3ef1ee1606efd8636", "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_resp.c" ], "versions": [ { "version": "6.2", "status": "affected" }, { "version": "0", "lessThan": "6.2", "status": "unaffected", "versionType": "semver" }, { "version": "6.6.36", "lessThanOrEqual": "6.6.*", "status": "unaffected", "versionType": "semver" }, { "version": "6.9.7", "lessThanOrEqual": "6.9.*", "status": "unaffected", "versionType": "semver" }, { "version": "6.10", "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": "6.2", "versionEndExcluding": "6.6.36" }, { "vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*", "versionStartIncluding": "6.2", "versionEndExcluding": "6.9.7" }, { "vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*", "versionStartIncluding": "6.2", "versionEndExcluding": "6.10" } ] } ] } ], "references": [ { "url": "https://git.kernel.org/stable/c/163868ec1f6c610d16da9e458fe1dd7d5de97341" }, { "url": "https://git.kernel.org/stable/c/943c94f41dfe36536dc9aaa12c9efdf548ceb996" }, { "url": "https://git.kernel.org/stable/c/f67ac0061c7614c1548963d3ef1ee1606efd8636" } ], "title": "RDMA/rxe: Fix responder length checking for UD request packets", "x_generator": { "engine": "bippy-1.2.0" } }, "adp": [ { "providerMetadata": { "orgId": "af854a3a-2127-422b-91ae-364da2661108", "shortName": "CVE", "dateUpdated": "2024-08-02T04:39:56.166Z" }, "title": "CVE Program Container", "references": [ { "url": "https://git.kernel.org/stable/c/163868ec1f6c610d16da9e458fe1dd7d5de97341", "tags": [ "x_transferred" ] }, { "url": "https://git.kernel.org/stable/c/943c94f41dfe36536dc9aaa12c9efdf548ceb996", "tags": [ "x_transferred" ] }, { "url": "https://git.kernel.org/stable/c/f67ac0061c7614c1548963d3ef1ee1606efd8636", "tags": [ "x_transferred" ] } ] }, { "metrics": [ { "other": { "type": "ssvc", "content": { "id": "CVE-2024-40992", "role": "CISA Coordinator", "options": [ { "Exploitation": "none" }, { "Automatable": "no" }, { "Technical Impact": "partial" } ], "version": "2.0.3", "timestamp": "2024-09-10T17:01:44.819044Z" } } } ], "title": "CISA ADP Vulnrichment", "providerMetadata": { "orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0", "shortName": "CISA-ADP", "dateUpdated": "2024-09-11T17:34:20.142Z" } } ] } }