In the Linux kernel, the following vulnerability has been resolved:
tracing/timerlat: Drop interface_lock in stop_kthread()
stop_kthread() is the offline callback for "trace/osnoise:online", since
commit 5bfbcd1ee57b ("tracing/timerlat: Add interface_lock around clearing
of kthread in stop_kthread()"), the following ABBA deadlock scenario is
introduced:
T1 | T2 [BP] | T3 [AP]
osnoise_hotplug_workfn() | work_for_cpu_fn() | cpuhp_thread_fun()
| _cpu_down() | osnoise_cpu_die()
mutex_lock(&interface_lock) | | stop_kthread()
| cpus_write_lock() | mutex_lock(&interface_lock)
cpus_read_lock() | cpuhp_kick_ap() |
As the interface_lock here in just for protecting the "kthread" field of
the osn_var, use xchg() instead to fix this issue. Also use
for_each_online_cpu() back in stop_per_cpu_kthreads() as it can take
cpu_read_lock() again.
References
Configurations
Configuration 1 (hide)
|
History
25 Oct 2024, 20:14
Type | Values Removed | Values Added |
---|---|---|
CPE | cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* cpe:2.3:o:linux:linux_kernel:6.12:rc1:*:*:*:*:*:* |
|
CWE | CWE-667 | |
References | () https://git.kernel.org/stable/c/09cb44cc3d3df7ade2cebc939d6257a2fa8afc7a - Patch | |
References | () https://git.kernel.org/stable/c/a4a05ceffe8fad68b45de38fe2311bda619e76e2 - Patch | |
References | () https://git.kernel.org/stable/c/b484a02c9cedf8703eff8f0756f94618004bd165 - Patch | |
References | () https://git.kernel.org/stable/c/db8571a9a098086608c11a15856ff585789e67e8 - Patch | |
First Time |
Linux linux Kernel
Linux |
|
CVSS |
v2 : v3 : |
v2 : unknown
v3 : 5.5 |
23 Oct 2024, 15:13
Type | Values Removed | Values Added |
---|---|---|
Summary |
|
21 Oct 2024, 18:15
Type | Values Removed | Values Added |
---|---|---|
New CVE |
Information
Published : 2024-10-21 18:15
Updated : 2024-10-25 20:14
NVD link : CVE-2024-49976
Mitre link : CVE-2024-49976
CVE.ORG link : CVE-2024-49976
JSON object : View
Products Affected
linux
- linux_kernel
CWE
CWE-667
Improper Locking