CVE-2024-49976: tracing/timerlat: Drop interface_lock in stop_kthread()
In the Linux kernel, the following vulnerability has been resolved:
tracing/timerlat: Drop interfacelock in stopkthread()
stopkthread() is the offline callback for "trace/osnoise:online", since commit 5bfbcd1ee57b ("tracing/timerlat: Add interfacelock around clearing of kthread in stopkthread()"), the following ABBA deadlock scenario is introduced:
T1 | T2 [BP] | T3 [AP] osnoisehotplugworkfn() | workforcpufn() | cpuhpthreadfun() | cpudown() | osnoisecpudie() mutexlock(&interfacelock) | | stopkthread() | cpuswritelock() | mutexlock(&interfacelock) cpusreadlock() | cpuhpkickap() |
As the interfacelock here in just for protecting the "kthread" field of the osnvar, use xchg() instead to fix this issue. Also use foreachonlinecpu() back in stoppercpukthreads() as it can take cpureadlock() again.
Other sources
This CVE was automatically created from a reference found in an email or other text. If you are reading this, then this CVE entry is probably erroneous, since this text should be replaced by the official CVE description automatically.
— Launchpad
Affected Software
Remediation
Event History
Frequently Asked Questions
What is the severity of CVE-2024-49976?
CVE-2024-49976 has been rated with medium severity due to its potential impact on system stability.
How do I fix CVE-2024-49976?
To fix CVE-2024-49976, upgrade your Linux kernel to versions later than 6.6.55, 6.10.14, or 6.11.3, or use the appropriate patches provided by the maintainers.
Which Linux kernel versions are affected by CVE-2024-49976?
CVE-2024-49976 affects Linux kernel versions 6.6.51 to 6.6.55, 6.10.10 to 6.10.14, and 6.11 to 6.11.3.
What is the impact of CVE-2024-49976?
The impact of CVE-2024-49976 could potentially involve instability issues during the execution of certain kthread operations.
Is CVE-2024-49976 related to kthread operations in the Linux kernel?
Yes, CVE-2024-49976 is specifically related to the handling of kthread operations in the Linux kernel's tracing component.