Description (CNA)
In the Linux kernel, the following vulnerability has been resolved: xprtrdma: Sanitize the reply credit grant after parsing The out_norqst exit in rpcrdma_reply_handler() branches away before the credit clamp, so a reply that matches no pending request reaches out_post carrying the raw credit value parsed from the wire. rpcrdma_post_recvs() does not bound its @needed argument: the refill loop allocates and chains Receive WRs until the count is satisfied or allocation fails. A peer that sends a well-formed reply carrying an unknown XID and an inflated credit grant therefore drives rep allocation and Receive posting past re_max_requests on every such reply. Move the clamp to immediately after the credit field is parsed, ahead of the first branch that can reach out_post, so every later consumer sees a sanitized value. The cwnd update stays on the matched-request path.
Affected (CNA)
| Vendor / product | Versions |
|---|---|
| Linux / Linux | affected d01d6670c169316115b26dfb3585a73dfe40b563 before 7cf332b3d82d73ffceedca6b4a120be074172021; affected d1b159356a3584943192712392fcb2439aafb8c1 before 41634242140173eabbf54f899f9c70b5c685e786; affected 17da9e0caa8615f6fc3b4022eadbd78a9aea1a2a before 8be1bb378def94a5cb8f7527a191e476407118ec; affected e7ae0883c8c89b901226de43862184bf37054338 before 469b22376ee73369711ecf2761bd122ef4195963; affected 704f3f640f72db4d44ec5ce3db8d4e150c974bc7 before 33db78b1b24fc6a464ae08aa4d2538c5f883eb5e; affected 704f3f640f72db4d44ec5ce3db8d4e150c974bc7 before c3a628aab2dc8f5fd7bff86ceaeae64de590e60a |
| Linux / Linux | affected 7.1; unaffected 0 before 7.1; unaffected 7.1.5 through 7.1.*; unaffected 7.2 through * |
CWE
No CWE identifiers supplied.
References
- https://git.kernel.org/stable/c/7cf332b3d82d73ffceedca6b4a120be074172021
- https://git.kernel.org/stable/c/41634242140173eabbf54f899f9c70b5c685e786
- https://git.kernel.org/stable/c/8be1bb378def94a5cb8f7527a191e476407118ec
- https://git.kernel.org/stable/c/469b22376ee73369711ecf2761bd122ef4195963
- https://git.kernel.org/stable/c/33db78b1b24fc6a464ae08aa4d2538c5f883eb5e
- https://git.kernel.org/stable/c/c3a628aab2dc8f5fd7bff86ceaeae64de590e60a