CVE-2021-47261
Severity CVSS v4.0:
Pending analysis
Type:
Unavailable / Other
Publication date:
21/05/2024
Last modified:
30/04/2025
Description
In the Linux kernel, the following vulnerability has been resolved:<br />
<br />
IB/mlx5: Fix initializing CQ fragments buffer<br />
<br />
The function init_cq_frag_buf() can be called to initialize the current CQ<br />
fragments buffer cq->buf, or the temporary cq->resize_buf that is filled<br />
during CQ resize operation.<br />
<br />
However, the offending commit started to use function get_cqe() for<br />
getting the CQEs, the issue with this change is that get_cqe() always<br />
returns CQEs from cq->buf, which leads us to initialize the wrong buffer,<br />
and in case of enlarging the CQ we try to access elements beyond the size<br />
of the current cq->buf and eventually hit a kernel panic.<br />
<br />
[exception RIP: init_cq_frag_buf+103]<br />
[ffff9f799ddcbcd8] mlx5_ib_resize_cq at ffffffffc0835d60 [mlx5_ib]<br />
[ffff9f799ddcbdb0] ib_resize_cq at ffffffffc05270df [ib_core]<br />
[ffff9f799ddcbdc0] llt_rdma_setup_qp at ffffffffc0a6a712 [llt]<br />
[ffff9f799ddcbe10] llt_rdma_cc_event_action at ffffffffc0a6b411 [llt]<br />
[ffff9f799ddcbe98] llt_rdma_client_conn_thread at ffffffffc0a6bb75 [llt]<br />
[ffff9f799ddcbec8] kthread at ffffffffa66c5da1<br />
[ffff9f799ddcbf50] ret_from_fork_nospec_begin at ffffffffa6d95ddd<br />
<br />
Fix it by getting the needed CQE by calling mlx5_frag_buf_get_wqe() that<br />
takes the correct source buffer as a parameter.
Impact
Base Score 3.x
7.80
Severity 3.x
HIGH
Vulnerable products and versions
| CPE | From | Up to |
|---|---|---|
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 4.17 (including) | 4.19.195 (excluding) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 4.20 (including) | 5.4.126 (excluding) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 5.5 (including) | 5.10.44 (excluding) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 5.11 (including) | 5.12.11 (excluding) |
| cpe:2.3:o:linux:linux_kernel:5.13:rc1:*:*:*:*:*:* | ||
| cpe:2.3:o:linux:linux_kernel:5.13:rc2:*:*:*:*:*:* | ||
| cpe:2.3:o:linux:linux_kernel:5.13:rc3:*:*:*:*:*:* | ||
| cpe:2.3:o:linux:linux_kernel:5.13:rc4:*:*:*:*:*:* | ||
| cpe:2.3:o:linux:linux_kernel:5.13:rc5:*:*:*:*:*:* |
To consult the complete list of CPE names with products and versions, see this page
References to Advisories, Solutions, and Tools
- https://git.kernel.org/stable/c/1ec2dcd680c71d0d36fa25638b327a468babd5c9
- https://git.kernel.org/stable/c/2ba0aa2feebda680ecfc3c552e867cf4d1b05a3a
- https://git.kernel.org/stable/c/3e670c54eda238cb8a1ea93538a79ae89285c1c4
- https://git.kernel.org/stable/c/91f7fdc4cc10542ca1045c06aad23365f0d067e0
- https://git.kernel.org/stable/c/e3ecd9c09fcc10cf6b2bc67e2990c397c40a8c26
- https://git.kernel.org/stable/c/1ec2dcd680c71d0d36fa25638b327a468babd5c9
- https://git.kernel.org/stable/c/2ba0aa2feebda680ecfc3c552e867cf4d1b05a3a
- https://git.kernel.org/stable/c/3e670c54eda238cb8a1ea93538a79ae89285c1c4
- https://git.kernel.org/stable/c/91f7fdc4cc10542ca1045c06aad23365f0d067e0
- https://git.kernel.org/stable/c/e3ecd9c09fcc10cf6b2bc67e2990c397c40a8c26



