CVE-2026-97971 in Linux
Tóm tắt
Bởi VulDB • 25/09/2026
Trong kernel Linux, lỗ hổng sau đây đã được khắc phục:
nstree: kiểm tra quyền liệt kê trước khi lấy tham chiếu namespace
Hàm `legitimize_ns()` lấy một tham chiếu trên namespace ứng viên trước khi hàm `may_list_ns()` quyết định xem người gọi có thể thấy nó hay không. Quá trình dọn dẹp `__free(ns_put)` trong đường dẫn bị từ chối có thể làm giảm tham chiếu cuối cùng đến một mount namespace trong khi chúng ta vẫn đang giữ khóa đọc RCU, và `put_mnt_ns()` có thể ngủ (sleep) tại đó. Đây là vấn đề tương tự mà commit 2ec2aff3c8e2 ("ns: make sure reference are dropped outside of rcu lock") đã khắc phục cho đường dẫn put_user(). Cả `ns_requested()` lẫn `may_list_ns()` đều không cần một tham chiếu, cả hai chỉ xem xét loại namespace và các namespace của chính người gọi, vì vậy hãy thực hiện các kiểm tra trước và lấy tham chiếu sau.
Splat:
Chuyển đổi ngữ cảnh tự nguyện trong phần quan trọng đọc RCU! CẢNH BÁO: kernel/rcu/tree_plugin.h:332 tại rcu_note_context_switch+0x238/0x2a0, CPU#5: a/3442 CPU: 5 UID: 1000 PID: 3442 Comm: a Not tainted 7.0.0-30-generic #30-Ubuntu PREEMPT(lazy) RIP: 0010:rcu_note_context_switch+0x238/0x2a0 Dấu vết cuộc gọi (Call Trace): <TASK> __schedule+0xcf/0x650 schedule+0x27/0x90 schedule_preempt_disabled+0x15/0x30 __mutex_lock.constprop.0+0x550/0xaf0 __mutex_lock_slowpath+0x13/0x20 mutex_lock+0x3b/0x50 exp_funnel_lock+0xb2/0x260 synchronize_rcu_expedited+0xe7/0x220 namespace_unlock+0x26a/0x320 put_mnt_ns+0xd3/0x120 mntns_put+0xe/0x20 do_listns+0x13e/0x560 __do_sys_listns+0x126/0x2d0 __x64_sys_listns+0x20/0x30 x64_sys_call+0x2366/0x2390 do_syscall_64+0x105/0x5a0 entry_SYSCALL_64_after_hwframe+0x76/0x7e </TASK>
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.