NULL Pointer Dereference Affecting kernel-livepatch-6_4_0-150600_10_8-rt package, versions <1-150600.1.3.2


Severity

Recommended
0.0
medium
0
10

Based on SUSE Linux Enterprise Server security rating.

Threat Intelligence

EPSS
0.29% (21st percentile)

Do your applications use this vulnerable package?

In a few clicks we can analyze your entire application and see what components are vulnerable in your application, and suggest you quick fixes.

Test your applications
  • Snyk IDSNYK-SLES156-KERNELLIVEPATCH640150600108RT-7927249
  • published11 Sept 2024
  • disclosed10 Sept 2024

Introduced: 10 Sep 2024

CVE-2024-39506  (opens in a new tab)
CWE-476  (opens in a new tab)

How to fix?

Upgrade SLES:15.6 kernel-livepatch-6_4_0-150600_10_8-rt to version 1-150600.1.3.2 or higher.

NVD Description

Note: Versions mentioned in the description apply only to the upstream kernel-livepatch-6_4_0-150600_10_8-rt package and not the kernel-livepatch-6_4_0-150600_10_8-rt package as distributed by SLES. See How to fix? for SLES:15.6 relevant fixed versions and status.

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.

CVSS Base Scores

version 3.1