CVE-2024-50144

drm/xe: fix unbalanced rpm put() with fence_fini()

Medium · published November 7, 2024

CVSS v3.1
5.5
EPSS
0%
Percentile
9.5
In the wild
Unconfirmed
What it is

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

drm/xe: fix unbalanced rpm put() with fence_fini()

Currently we can call fence_fini() twice if something goes wrong when

sending the GuC CT for the tlb request, since we signal the fence and

return an error, leading to the caller also calling fini() on the error

path in the case of stack version of the flow, which leads to an extra

rpm put() which might later cause device to enter suspend when it

shouldn't. It looks like we can just drop the fini() call since the

fence signaller side will already call this for us.

There are known mysterious splats with device going to sleep even with

an rpm ref, and this could be one candidate.

v2 (Matt B):

- Prefer warning if we detect double fini()

(cherry picked from commit cfcbc0520d5055825f0647ab922b655688605183)

The record
Technical detail
CVSS v3.1
5.5 · MEDIUM
Vector
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H
CVSS v4.0
Not supplied
EPSS
0.00201 · 9.5th percentile
Published
2024-11-07T09:31Z
EPSS history
Timeline
  • 07 NOV 09:31Z
    drm/xe: fix unbalanced rpm put() with fence_fini()
    cvelistv5