漏洞信息
# bpf:解决 rcu_tasks_trace 和 event_mutex 之间的死锁问题。
## 概述
在Linux内核中,解决了一个关于`bpf`的死锁问题。具体来说,解决了一个发生在`rcu_tasks_trace`和`event_mutex`之间的死锁问题。
## 细节
死锁发生在以下两条路径上:
- **CPU A**
- `_free_event()`调用`perf_kprobe_destroy()`,进而调用`mutex_lock(&event_mutex)`并执行`perf_trace_event_unreg()`,最终调用`synchronize_rcu_tasks_trace()`。
- **CPU B**
- `bpf_prog_test_run_syscall()`调用`rcu_read_lock_trace()`,进而进入`bpf_prog_run_pin_on_cpu()`,随后调用`bpf_prog_load()`并执行`bpf_tracing_func_proto()`,最终调用`trace_set_clr_event()`,该函数尝试获取`event_mutex`。
为避免这种锁依赖带来的死锁,将`trace_set_clr_event()`委托给工作队列执行。
## 影响
该修复解决了由`rcu_tasks_trace`和`event_mutex`之间的锁依赖导致的死锁问题,提升了系统的稳定性和可靠性。
## 影响版本
未具体列出受影响的Linux内核版本。
提示
尽管我们采用了先进的大模型技术,但其输出仍可能包含不准确或过时的信息。
神龙会尽力确保数据准确,但也请结合实际情况进行甄别与判断。
神龙祝您一切顺利!
漏洞标题
bpf: Fix deadlock between rcu_tasks_trace and event_mutex.
漏洞描述信息
In the Linux kernel, the following vulnerability has been resolved:
bpf: Fix deadlock between rcu_tasks_trace and event_mutex.
Fix the following deadlock:
CPU A
_free_event()
perf_kprobe_destroy()
mutex_lock(&event_mutex)
perf_trace_event_unreg()
synchronize_rcu_tasks_trace()
There are several paths where _free_event() grabs event_mutex
and calls sync_rcu_tasks_trace. Above is one such case.
CPU B
bpf_prog_test_run_syscall()
rcu_read_lock_trace()
bpf_prog_run_pin_on_cpu()
bpf_prog_load()
bpf_tracing_func_proto()
trace_set_clr_event()
mutex_lock(&event_mutex)
Delegate trace_set_clr_event() to workqueue to avoid
such lock dependency.
CVSS信息
N/A
漏洞类别
N/A
漏洞标题
Linux kernel 安全漏洞
漏洞描述信息
WordPress和WordPress plugin都是WordPress基金会的产品。WordPress是一套使用PHP语言开发的博客平台。该平台支持在PHP和MySQL的服务器上架设个人博客网站。WordPress plugin是一个应用插件。 Linux kernel存在安全漏洞,该漏洞源于rcu_tasks_trace和event_mutex之间的死锁。
CVSS信息
N/A
漏洞类别
其他