HomeDefectsLIN1024-3194
Fixed

LIN1024-3194 : Security Advisory - linux - CVE-2024-42071

Created: Jul 29, 2024    Updated: Aug 28, 2024
Resolved Date: Jul 29, 2024
Found In Version: 10.24.33.1
Severity: Standard
Applicable for: Wind River Linux LTS 24
Component/s: Kernel

Description

In the Linux kernel, the following vulnerability has been resolved:ionic: use dev_consume_skb_any outside of napiIf we're not in a NAPI softirq context, we need to be carefulabout how we call napi_consume_skb(), specifically we need tocall it with budget==0 to signal to it that we're not in asafe context.This was found while running some configuration stress testingof traffic and a change queue config loop running, and thiscurious note popped out: 4371.402645] BUG: using smp_processor_id() in preemptible [00000000] code: ethtool/20545[ 4371.402897] caller is napi_skb_cache_put+0x16/0x80[ 4371.403120] CPU: 25 PID: 20545 Comm: ethtool Kdump: loaded Tainted: G           OE      6.10.0-rc3-netnext+ #8[ 4371.403302] Hardware name: HPE ProLiant DL360 Gen10/ProLiant DL360 Gen10, BIOS U32 01/23/2021[ 4371.403460] Call Trace:[ 4371.403613]  <TASK>[ 4371.403758]  dump_stack_lvl+0x4f/0x70[ 4371.403904]  check_preemption_disabled+0xc1/0xe0[ 4371.404051]  napi_skb_cache_put+0x16/0x80[ 4371.404199]  ionic_tx_clean+0x18a/0x240 [ionic][ 4371.404354]  ionic_tx_cq_service+0xc4/0x200 [ionic][ 4371.404505]  ionic_tx_flush+0x15/0x70 [ionic][ 4371.404653]  ? ionic_lif_qcq_deinit.isra.23+0x5b/0x70 [ionic][ 4371.404805]  ionic_txrx_deinit+0x71/0x190 [ionic][ 4371.404956]  ionic_reconfigure_queues+0x5f5/0xff0 [ionic][ 4371.405111]  ionic_set_ringparam+0x2e8/0x3e0 [ionic][ 4371.405265]  ethnl_set_rings+0x1f1/0x300[ 4371.405418]  ethnl_default_set_doit+0xbb/0x160[ 4371.405571]  genl_family_rcv_msg_doit+0xff/0x130        [...]I found that ionic_tx_clean() calls napi_consume_skb() which callsnapi_skb_cache_put(), but before that last call is the note    /* Zero budget indicate non-NAPI context called us, like netpoll */and    DEBUG_NET_WARN_ON_ONCE(!in_softirq());Those are pretty big hints that we're doing it wrong.  We can pass acontext hint down through the calls to let ionic_tx_clean() know whatwe're doing so it can call napi_consume_skb() correctly.

CREATE(Triage):(User=admin) [CVE-2024-42071 (https://nvd.nist.gov/vuln/detail/CVE-2024-42071)