Lucene search

K
nvd416baaa9-dc9f-4396-8d5f-8c081fb06d67NVD:CVE-2024-39506
HistoryJul 12, 2024 - 1:15 p.m.

CVE-2024-39506

2024-07-1213:15:12
CWE-476
416baaa9-dc9f-4396-8d5f-8c081fb06d67
web.nvd.nist.gov
6
linux kernel
vulnerability
lio_vf_rep_copy_packet
null pointer
skb_add_rx_frag
liquidio

CVSS3

5.5

Attack Vector

LOCAL

Attack Complexity

LOW

Privileges Required

LOW

User Interaction

NONE

Scope

UNCHANGED

Confidentiality Impact

NONE

Integrity Impact

NONE

Availability Impact

HIGH

CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H

EPSS

0

Percentile

5.1%

In the Linux kernel, the following vulnerability has been resolved:

liquidio: Adjust a NULL pointer handling path in lio_vf_rep_copy_packet

In lio_vf_rep_copy_packet() pg_info->page is compared to a NULL value,
but then it is unconditionally passed to skb_add_rx_frag() which looks
strange and could lead to null pointer dereference.

lio_vf_rep_copy_packet() call trace looks like:
octeon_droq_process_packets
octeon_droq_fast_process_packets
octeon_droq_dispatch_pkt
octeon_create_recv_info
…search in the dispatch_list…
->disp_fn(rdisp->rinfo, …)
lio_vf_rep_pkt_recv(struct octeon_recv_info *recv_info, …)
In this path there is no code which sets pg_info->page to NULL.
So this check looks unneeded and doesn’t solve potential problem.
But I guess the author had reason to add a check and I have no such card
and can’t do real test.
In addition, the code in the function liquidio_push_packet() in
liquidio/lio_core.c does exactly the same.

Based on this, I consider the most acceptable compromise solution to
adjust this issue by moving skb_add_rx_frag() into conditional scope.

Found by Linux Verification Center (linuxtesting.org) with SVACE.

Affected configurations

Nvd
Node
linuxlinux_kernelRange4.154.19.317
OR
linuxlinux_kernelRange4.205.4.279
OR
linuxlinux_kernelRange5.55.10.221
OR
linuxlinux_kernelRange5.115.15.162
OR
linuxlinux_kernelRange5.166.1.95
OR
linuxlinux_kernelRange6.26.6.35
OR
linuxlinux_kernelRange6.76.9.6
OR
linuxlinux_kernelMatch6.10rc1
OR
linuxlinux_kernelMatch6.10rc2
OR
linuxlinux_kernelMatch6.10rc3
VendorProductVersionCPE
linuxlinux_kernel*cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
linuxlinux_kernel6.10cpe:2.3:o:linux:linux_kernel:6.10:rc1:*:*:*:*:*:*
linuxlinux_kernel6.10cpe:2.3:o:linux:linux_kernel:6.10:rc2:*:*:*:*:*:*
linuxlinux_kernel6.10cpe:2.3:o:linux:linux_kernel:6.10:rc3:*:*:*:*:*:*

CVSS3

5.5

Attack Vector

LOCAL

Attack Complexity

LOW

Privileges Required

LOW

User Interaction

NONE

Scope

UNCHANGED

Confidentiality Impact

NONE

Integrity Impact

NONE

Availability Impact

HIGH

CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H

EPSS

0

Percentile

5.1%