Description (CNA)
In the Linux kernel, the following vulnerability has been resolved: nvmet-tcp: propagate nvmet_tcp_build_pdu_iovec() errors to its callers Currently, when nvmet_tcp_build_pdu_iovec() detects an out-of-bounds PDU length or offset, it triggers nvmet_tcp_fatal_error(cmd->queue) and returns early. However, because the function returns void, the callers are entirely unaware that a fatal error has occurred and that the cmd->recv_msg.msg_iter was left uninitialized. Callers such as nvmet_tcp_handle_h2c_data_pdu() proceed to blindly overwrite the queue state with queue->rcv_state = NVMET_TCP_RECV_DATA Consequently, the socket receiving loop may attempt to read incoming network data into the uninitialized iterator. Fix this by shifting the error handling responsibility to the callers.
Affected (CNA)
| Vendor / product | Versions |
|---|---|
| Linux / Linux | affected 1385be357e8acd09b36e026567f3a9d5c61139de before 3df42a854686fa06484e37ac1a3931c8e3e3453c; affected dca1a6ba0da9f472ef040525fab10fd9956db59f before d7c8f95f599b3b38a717d2e771c3f8c174f657c3; affected 19672ae68d52ff75347ebe2420dde1b07adca09f before f9204a2b78dd18374d3bcf9bf93d9021ce22de1b; affected ab200d71553bdcf4de554a5985b05b2dd606bc57 before c2a11441538bdbbc5aa003f190995eba93a89b88; affected 52a0a98549344ca20ad81a4176d68d28e3c05a5c before 046fa5c72d15cd8e2d592e275697ea399d8f76b0; affected 52a0a98549344ca20ad81a4176d68d28e3c05a5c before ea8e356acb165cb1fd75537a52e1f66e5e76c538; affected 043b4307a99f902697349128fde93b2ddde4686c; affected 42afe8ed8ad2de9c19457156244ef3e1eca94b5d; affected 6.1.163 before 6.1.175; affected 6.6.124 before 6.6.141; affected 6.12.70 before 6.12.91; affected 6.18.10 before 6.18.33; affected 5.10.250 before 5.11; affected 5.15.200 before 5.16 |
| Linux / Linux | affected 6.19; unaffected 0 before 6.19; unaffected 6.1.175 through 6.1.*; unaffected 6.6.141 through 6.6.*; unaffected 6.12.91 through 6.12.*; unaffected 6.18.33 through 6.18.*; unaffected 7.0.10 through 7.0.*; unaffected 7.1 through * |
CWE
No CWE identifiers supplied.
References
- https://git.kernel.org/stable/c/3df42a854686fa06484e37ac1a3931c8e3e3453c
- https://git.kernel.org/stable/c/d7c8f95f599b3b38a717d2e771c3f8c174f657c3
- https://git.kernel.org/stable/c/f9204a2b78dd18374d3bcf9bf93d9021ce22de1b
- https://git.kernel.org/stable/c/c2a11441538bdbbc5aa003f190995eba93a89b88
- https://git.kernel.org/stable/c/046fa5c72d15cd8e2d592e275697ea399d8f76b0
- https://git.kernel.org/stable/c/ea8e356acb165cb1fd75537a52e1f66e5e76c538
ADP enrichment
A flaw was found in the `nvmet-tcp` component of the Linux kernel. The `nvmet_tcp_build_pdu_iovec()` function fails to propagate errors when detecting out-of-bounds PDU lengths or offsets. This can lead to uninitialized memory being used by subsequent operations, such as reading incoming network data into an uninitialized iterator. A remote attacker could potentially exploit this memory corruption to cause a denial of service or achieve arbitrary code execution.