In the Linux kernel, the following vulnerability has been resolved:
RDMA/rxe: Fix responder length checking for UD request packets
According to the IBA specification: If a UD request packet is detected with an invalid length, the request shall be an invalid request and it shall be silently dropped by the responder. The responder then waits for a new request packet.
commit 689c5421bfe0 ("RDMA/rxe: Fix incorrect responder length checking")
defers responder length check for UD QPs in function copy_data.
But it introduces a regression issue for UD QPs.
When the packet size is too large to fit in the receive buffer.
copy_data will return error code -EINVAL. Then send_data_in
will return RESPSTERRMALFORMED_WQE. UD QP will transfer into
ERROR state.
[
{
"deprecated": false,
"signature_version": "v1",
"digest": {
"length": 1100.0,
"function_hash": "138283113660359694044692081624110417933"
},
"id": "CVE-2024-40992-13b890fa",
"signature_type": "Function",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@f67ac0061c7614c1548963d3ef1ee1606efd8636",
"target": {
"file": "drivers/infiniband/sw/rxe/rxe_resp.c",
"function": "rxe_resp_check_length"
}
},
{
"deprecated": false,
"signature_version": "v1",
"digest": {
"threshold": 0.9,
"line_hashes": [
"15397375385720512370201820517397891883",
"232624663304750920906176847159319562150",
"334452225461594472724796542370002219672"
]
},
"id": "CVE-2024-40992-2322c9c8",
"signature_type": "Line",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@163868ec1f6c610d16da9e458fe1dd7d5de97341",
"target": {
"file": "drivers/infiniband/sw/rxe/rxe_resp.c"
}
},
{
"deprecated": false,
"signature_version": "v1",
"digest": {
"threshold": 0.9,
"line_hashes": [
"15397375385720512370201820517397891883",
"232624663304750920906176847159319562150",
"334452225461594472724796542370002219672"
]
},
"id": "CVE-2024-40992-4c48b377",
"signature_type": "Line",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@943c94f41dfe36536dc9aaa12c9efdf548ceb996",
"target": {
"file": "drivers/infiniband/sw/rxe/rxe_resp.c"
}
},
{
"deprecated": false,
"signature_version": "v1",
"digest": {
"threshold": 0.9,
"line_hashes": [
"15397375385720512370201820517397891883",
"232624663304750920906176847159319562150",
"334452225461594472724796542370002219672"
]
},
"id": "CVE-2024-40992-58af9d6e",
"signature_type": "Line",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@f67ac0061c7614c1548963d3ef1ee1606efd8636",
"target": {
"file": "drivers/infiniband/sw/rxe/rxe_resp.c"
}
},
{
"deprecated": false,
"signature_version": "v1",
"digest": {
"length": 1092.0,
"function_hash": "334500847059127156576408223519695189048"
},
"id": "CVE-2024-40992-63864a55",
"signature_type": "Function",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@163868ec1f6c610d16da9e458fe1dd7d5de97341",
"target": {
"file": "drivers/infiniband/sw/rxe/rxe_resp.c",
"function": "rxe_resp_check_length"
}
},
{
"deprecated": false,
"signature_version": "v1",
"digest": {
"length": 1100.0,
"function_hash": "138283113660359694044692081624110417933"
},
"id": "CVE-2024-40992-e493031d",
"signature_type": "Function",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@943c94f41dfe36536dc9aaa12c9efdf548ceb996",
"target": {
"file": "drivers/infiniband/sw/rxe/rxe_resp.c",
"function": "rxe_resp_check_length"
}
}
]