CVE-2024-40976
Severity CVSS v4.0:
Pending analysis
Type:
CWE-362
Concurrent Execution using Shared Resource with Improper Synchronization ('Race Condition')
Publication date:
12/07/2024
Last modified:
03/11/2025
Description
In the Linux kernel, the following vulnerability has been resolved:<br />
<br />
drm/lima: mask irqs in timeout path before hard reset<br />
<br />
There is a race condition in which a rendering job might take just long<br />
enough to trigger the drm sched job timeout handler but also still<br />
complete before the hard reset is done by the timeout handler.<br />
This runs into race conditions not expected by the timeout handler.<br />
In some very specific cases it currently may result in a refcount<br />
imbalance on lima_pm_idle, with a stack dump such as:<br />
<br />
[10136.669170] WARNING: CPU: 0 PID: 0 at drivers/gpu/drm/lima/lima_devfreq.c:205 lima_devfreq_record_idle+0xa0/0xb0<br />
...<br />
[10136.669459] pc : lima_devfreq_record_idle+0xa0/0xb0<br />
...<br />
[10136.669628] Call trace:<br />
[10136.669634] lima_devfreq_record_idle+0xa0/0xb0<br />
[10136.669646] lima_sched_pipe_task_done+0x5c/0xb0<br />
[10136.669656] lima_gp_irq_handler+0xa8/0x120<br />
[10136.669666] __handle_irq_event_percpu+0x48/0x160<br />
[10136.669679] handle_irq_event+0x4c/0xc0<br />
<br />
We can prevent that race condition entirely by masking the irqs at the<br />
beginning of the timeout handler, at which point we give up on waiting<br />
for that job entirely.<br />
The irqs will be enabled again at the next hard reset which is already<br />
done as a recovery by the timeout handler.
Impact
Base Score 3.x
5.50
Severity 3.x
MEDIUM
Vulnerable products and versions
| CPE | From | Up to |
|---|---|---|
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 5.2 (including) | 5.10.221 (excluding) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 5.11 (including) | 5.15.162 (excluding) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 5.16 (including) | 6.1.96 (excluding) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.2 (including) | 6.6.36 (excluding) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.7 (including) | 6.9.7 (excluding) |
To consult the complete list of CPE names with products and versions, see this page
References to Advisories, Solutions, and Tools
- https://git.kernel.org/stable/c/03e7b2f7ae4c0ae5fb8e4e2454ba4008877f196a
- https://git.kernel.org/stable/c/58bfd311c93d66d8282bf21ebbf35cc3bb8ad9db
- https://git.kernel.org/stable/c/70aa1f2dec46b6fdb5f6b9f37b6bfa4a4dee0d3a
- https://git.kernel.org/stable/c/9fd8ddd23793a50dbcd11c6ba51f437f1ea7d344
- https://git.kernel.org/stable/c/a421cc7a6a001b70415aa4f66024fa6178885a14
- https://git.kernel.org/stable/c/bdbc4ca77f5eaac15de7230814253cddfed273b1
- https://git.kernel.org/stable/c/03e7b2f7ae4c0ae5fb8e4e2454ba4008877f196a
- https://git.kernel.org/stable/c/58bfd311c93d66d8282bf21ebbf35cc3bb8ad9db
- https://git.kernel.org/stable/c/70aa1f2dec46b6fdb5f6b9f37b6bfa4a4dee0d3a
- https://git.kernel.org/stable/c/9fd8ddd23793a50dbcd11c6ba51f437f1ea7d344
- https://git.kernel.org/stable/c/a421cc7a6a001b70415aa4f66024fa6178885a14
- https://git.kernel.org/stable/c/bdbc4ca77f5eaac15de7230814253cddfed273b1
- https://lists.debian.org/debian-lts-announce/2025/01/msg00001.html



