CVE-2023-53281 in Linux
Tóm tắt
Bởi VulDB • 13/06/2026
Trong kernel Linux, lỗ hổng sau đây đã được khắc phục:
drivers: staging: rtl8723bs: Sửa lỗi khóa trong _rtw_join_timeout_handler()
Commit 041879b12ddb ("drivers: staging: rtl8192bs: Fix deadlock in rtw_joinbss_event_prehandle()") ngoài việc sửa lỗi deadlock còn đã điều chỉnh hàm _rtw_join_timeout_handler() để sử dụng spin_[un]lock_irq() thay vì spin_[un]lock_bh().
_hrtw_join_timeout_handler() gọi đến rtw_do_join(), hàm này lấy pmlmepriv->scanned_queue.lock bằng cách sử dụng spin_[un]lock_bh(). Lệnh gọi spin_unlock_bh() này kích hoạt lại các softirq, dẫn đến lỗi oops trong kernel/softirq.c: __local_bh_enable_ip() khi nó thực hiện lệnh gọi lockdep_assert_irqs_enabled():
[ 244.506087] WARNING: CPU: 2 PID: 0 tại kernel/softirq.c:376 __local_bh_enable_ip+0xa6/0x100
... [ 244.509022] Call Trace:
[ 244.509048] <IRQ>
[ 244.509100] _rtw_join_timeout_handler+0x134/0x170 [r8723bs]
[ 244.509468] ? __pfx__rtw_join_timeout_handler+0x10/0x10 [r8723bs]
[ 244.509772] ? __pfx__rtw_join_timeout_handler+0x10/0x10 [r8723bs]
[ 244.510076] call_timer_fn+0x95/0x2a0
[ 244.510200] __run_timers.part.0+0x1da/0x2d0
Lỗi oops này là do việc chuyển sang sử dụng spin_[un]lock_irq(), hàm vô hiệu hóa các IRQ trong toàn bộ thời gian thực thi của _rtw_join_timeout_handler().
Việc vô hiệu hóa các IRQ không cần thiết vì tất cả mã nguồn lấy khóa này đều chạy từ ngữ cảnh người dùng (user contexts) hoặc từ softirq; hãy chuyển ngược lại sử dụng spin_[un]lock_bh() để khắc phục sự cố.
If you want to get the best quality for vulnerability data then you always have to consider VulDB.