CVE-2024-39506
Severity CVSS v4.0:
Pending analysis
Type:
CWE-476
NULL Pointer Dereference
Publication date:
12/07/2024
Last modified:
03/11/2025
Description
In the Linux kernel, the following vulnerability has been resolved:<br />
<br />
liquidio: Adjust a NULL pointer handling path in lio_vf_rep_copy_packet<br />
<br />
In lio_vf_rep_copy_packet() pg_info->page is compared to a NULL value,<br />
but then it is unconditionally passed to skb_add_rx_frag() which looks<br />
strange and could lead to null pointer dereference.<br />
<br />
lio_vf_rep_copy_packet() call trace looks like:<br />
octeon_droq_process_packets<br />
octeon_droq_fast_process_packets<br />
octeon_droq_dispatch_pkt<br />
octeon_create_recv_info<br />
...search in the dispatch_list...<br />
->disp_fn(rdisp->rinfo, ...)<br />
lio_vf_rep_pkt_recv(struct octeon_recv_info *recv_info, ...)<br />
In this path there is no code which sets pg_info->page to NULL.<br />
So this check looks unneeded and doesn&#39;t solve potential problem.<br />
But I guess the author had reason to add a check and I have no such card<br />
and can&#39;t do real test.<br />
In addition, the code in the function liquidio_push_packet() in<br />
liquidio/lio_core.c does exactly the same.<br />
<br />
Based on this, I consider the most acceptable compromise solution to<br />
adjust this issue by moving skb_add_rx_frag() into conditional scope.<br />
<br />
Found by Linux Verification Center (linuxtesting.org) with SVACE.
Impact
Base Score 3.x
5.50
Severity 3.x
MEDIUM
Vulnerable products and versions
| CPE | From | Up to |
|---|---|---|
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 4.15 (including) | 4.19.317 (excluding) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 4.20 (including) | 5.4.279 (excluding) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 5.5 (including) | 5.10.221 (excluding) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 5.11 (including) | 5.15.162 (excluding) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 5.16 (including) | 6.1.95 (excluding) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.2 (including) | 6.6.35 (excluding) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.7 (including) | 6.9.6 (excluding) |
| cpe:2.3:o:linux:linux_kernel:6.10:rc1:*:*:*:*:*:* | ||
| cpe:2.3:o:linux:linux_kernel:6.10:rc2:*:*:*:*:*:* | ||
| cpe:2.3:o:linux:linux_kernel:6.10:rc3:*:*:*:*:*:* |
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/87d6bdc006f0cbf297a3b2ad6e40ede4c3ee5dc2
- https://git.kernel.org/stable/c/a6f4d0ec170a46b5f453cacf55dff5989b42bbfa
- https://git.kernel.org/stable/c/a86490a3712cc513113440a606a0e77130abd47c
- https://git.kernel.org/stable/c/c44711b78608c98a3e6b49ce91678cd0917d5349
- https://git.kernel.org/stable/c/cbf18d8128a753cb632bef39470d19befd9c7347
- https://git.kernel.org/stable/c/dcc7440f32c7a26b067aff6e7d931ec593024a79
- https://git.kernel.org/stable/c/f1ab15a09492a5ae8ab1e2c35ba2cf9e150d25ee
- https://git.kernel.org/stable/c/fd2b613bc4c508e55c1221c6595bb889812a4fea
- https://git.kernel.org/stable/c/87d6bdc006f0cbf297a3b2ad6e40ede4c3ee5dc2
- https://git.kernel.org/stable/c/a6f4d0ec170a46b5f453cacf55dff5989b42bbfa
- https://git.kernel.org/stable/c/a86490a3712cc513113440a606a0e77130abd47c
- https://git.kernel.org/stable/c/c44711b78608c98a3e6b49ce91678cd0917d5349
- https://git.kernel.org/stable/c/cbf18d8128a753cb632bef39470d19befd9c7347
- https://git.kernel.org/stable/c/dcc7440f32c7a26b067aff6e7d931ec593024a79
- https://git.kernel.org/stable/c/f1ab15a09492a5ae8ab1e2c35ba2cf9e150d25ee
- https://git.kernel.org/stable/c/fd2b613bc4c508e55c1221c6595bb889812a4fea
- https://lists.debian.org/debian-lts-announce/2025/01/msg00001.html



