CVE Database›Document archive›CVE-2022-48985

CVE-2022-48985

kernel: net: mana: Fix race on per-CQ variable napi work_done

Loading…

Severity

Moderate

Red Hat Product Security

4.1

CVSS 3.1

Review impact separately from score.

Published · October 21, 2024

Updated · August 5, 2026

Description

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

net: mana: Fix race on per-CQ variable napi work_done

After calling napi_complete_done(), the NAPIF_STATE_SCHED bit may be cleared, and another CPU can start napi thread and access per-CQ variable, cq->work_done. If the other thread (for example, from busy_poll) sets it to a value >= budget, this thread will continue to run when it should stop, and cause memory corruption and panic.

To fix this issue, save the per-CQ work_done variable in a local variable before napi_complete_done(), so it won't be corrupted by a possible concurrent thread after napi_complete_done().

Also, add a flag bit to advertise to the NIC firmware: the NAPI work_done variable race is fixed, so the driver is able to reliably support features like busy_poll.

Statement

The fail could happen for the specific cases (race condition) during this network driver usage. No known attack vectors (apart from possibility of deny of service). The driver enabled only in latest versions of Red Hat Enterprise Linux (8.9 or 9.5).

CVSS score applicability

The CVSS score(s) listed for this vulnerability do not reflect the associated product's status, and are included for informational purposes to better understand the severity of this vulnerability.

Mitigation

To mitigate this issue, prevent module mana from being loaded. Please see https://access.redhat.com/solutions/41278 for how to blacklist a kernel module to prevent it from loading automatically.

CVSS / CWE

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

CWE-368 · Context Switching Race Condition