CVE-2024-50144 drm/xe: fix unbalanced rpm put() with fence_fini()
A race condition in the Linux kernel's Xe GPU driver allows double-freeing a fence, potentially causing unexpected device suspension and denial of service.
- Exploited in the wild
- Not known
- Login needed
- Any signed-in user
- Attackable
- Local or same network only
- Victim action needed
- Not needed
- Fix
- Available
What is CVE-2024-50144?
CVE-2024-50144 is a medium-severity vulnerability in Linux kernel, published on 7 Nov 2024. It can only be exploited from the same machine or local network, with no action from the victim.
Official description
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)
Which versions are affected by CVE-2024-50144?
It affects 1 product.
Products include Linux kernel.
How do I fix CVE-2024-50144?
Apply the vendor's patch.
Is CVE-2024-50144 being exploited?
There is no known exploitation of CVE-2024-50144 in the wild and no public exploit code.
Other vulnerabilities in Linux kernel
Sources
Also known as BELL-CVE-2024-50144, DEBIAN-CVE-2024-50144, GHSA-cjjp-gcwg-8fxm, UBUNTU-CVE-2024-50144.