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.