🇰🇷 한글 설명
Linux 커널의 rtw88 Wi-Fi 드라이버에서 RCU 읽기 측 임계 구역 내에서 자발적인 컨텍스트 스위칭이 발생하는 취약점이 발견되었습니다. ieee80211_chan_bw_change() 함수가 RCU 읽기 잠금을 보유한 상태에서 drv_sta_rc_update()를 호출하여 발생하며, 이를 해결하기 위해 작업 큐(work)를 사용하여 업데이트를 수행하도록 수정되었습니다.
💡 쉬운 설명
Wi-Fi를 사용하는 과정에서 시스템의 핵심 관리 규칙을 어기고 잠시 멈추는 동작이 발생하여 시스템 불안정을 초래할 수 있는 문제입니다. 이로 인해 시스템이 멈추거나 예상치 못한 오류가 발생할 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
wifi: rtw88: use work to update rate to avoid RCU warning
The ieee80211_ops::sta_rc_update must be atomic, because
ieee80211_chan_bw_change() holds rcu_read lock while calling
drv_sta_rc_update(), so create a work to do original things.
Voluntary context switch within RCU read-side critical section!
WARNING: CPU: 0 PID: 4621 at kernel/rcu/tree_plugin.h:318
rcu_note_context_switch+0x571/0x5d0
CPU: 0 PID: 4621 Comm: kworker/u16:2 Tainted: G W OE
Workqueue: phy3 ieee80211_chswitch_work [mac80211]
RIP: 0010:rcu_note_context_switch+0x571/0x5d0
Call Trace:
<TASK>
__schedule+0xb0/0x1460
? __mod_timer+0x116/0x360
schedule+0x5a/0xc0
schedule_timeout+0x87/0x150
? trace_raw_output_tick_stop+0x60/0x60
wait_for_completion_timeout+0x7b/0x140
usb_start_wait_urb+0x82/0x160 [usbcore
usb_control_msg+0xe3/0x140 [usbcore
rtw_usb_read+0x88/0xe0 [rtw_usb
rtw_usb_read8+0xf/0x10 [rtw_usb
rtw_fw_send_h2c_command+0xa0/0x170 [rtw_core
rtw_fw_send_ra_info+0xc9/0xf0 [rtw_core
drv_sta_rc_update+0x7c/0x160 [mac80211
ieee80211_chan_bw_change+0xfb/0x110 [mac80211
ieee80211_change_chanctx+0x38/0x130 [mac80211
ieee80211_vif_use_reserved_switch+0x34e/0x900 [mac80211
ieee80211_link_use_reserved_context+0x88/0xe0 [mac80211
ieee80211_chswitch_work+0x95/0x170 [mac80211
process_one_work+0x201/0x410
worker_thread+0x4a/0x3b0
? process_one_work+0x410/0x410
kthread+0xe1/0x110
? kthread_complete_and_exit+0x20/0x20
ret_from_fork+0x1f/0x30
</TASK>
📍 영향받는 시스템
rtw88 드라이버를 사용하는 Linux 커널 시스템
⚔️ 공격 벡터
로컬 공격자가 특정 네트워크 환경 변화를 유도하여 커널 패닉 또는 시스템 불안정을 유발할 수 있음
🛡️ 대응 방법
rtw88 드라이버 패치가 적용된 최신 Linux 커널로 업데이트
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 해결된 패치 버전 이후인지 확인