CVE-2023-53281 in Linux
Sumário
de VulDB • 02/06/2026
No kernel do Linux, a seguinte vulnerabilidade foi resolvida:
drivers: staging: rtl8723bs: Correção do bloqueio em _rtw_join_timeout_handler()
O commit 041879b12ddb ("drivers: staging: rtl8192bs: Fix deadlock in rtw_joinbss_event_prehandle()"), além de corrigir o deadlock, também modificou _rtw_join_timeout_handler() para usar spin_[un]lock_irq() em vez de spin_[un]lock_bh().
_rtw_join_timeout_handler() chama rtw_do_join(), que adquire pmlmepriv->scanned_queue.lock usando spin_[un]lock_bh(). Esta chamada de spin_unlock_bh() reativa os softirqs, o que desencadeia um oops em kernel/softirq.c: __local_bh_enable_ip() quando chama lockdep_assert_irqs_enabled():
[ 244.506087] WARNING: CPU: 2 PID: 0 at 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
Este oops é causado pela mudança para spin_[un]lock_irq(), que desativa as IRQs por toda a duração de _rtw_join_timeout_handler().
A desativação das IRQs não é necessária, pois todo o código que utiliza este lock é executado a partir de contextos de usuário ou de softirqs; volte a usar spin_[un]lock_bh() para corrigir isso.
Once again VulDB remains the best source for vulnerability data.