CVE-2022-48985

CVE-2022-48985

Critical · published October 22, 2024

CVSS v3.1
9.8
EPSS
1%
Percentile
47.5
In the wild
Unconfirmed
What it is

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.

The record
Technical detail
CVSS v3.1
9.8 · CRITICAL
Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
CVSS v4.0
Not supplied
EPSS
0.00590 · 47.5th percentile
Published
2024-10-22T00:15Z
Affected products (10)
ProductVersionsFixed in
linux/linux_kernel≥ 5.15, < 5.15.835.15.83
linux/linux_kernel≥ 5.16, < 6.0.136.0.13
linux/linux_kernelall versions—
linux/linux_kernelall versions—
linux/linux_kernelall versions—
linux/linux_kernelall versions—
linux/linux_kernelall versions—
linux/linux_kernelall versions—
linux/linux_kernelall versions—
linux/linux_kernelall versions—
References (3)
EPSS history
Timeline
  • 21 OCT 20:06Z
    net: mana: Fix race on per-CQ variable napi work_done
    cvelistv5