🇰🇷 한글 설명
Linux 커널의 ath11k Wi-Fi 드라이버에서 채널 목록 업데이트 시 비동기 처리 과정의 동기화 오류로 인해 발생하는 취약점입니다. 새로운 채널 목록이 완전히 처리되기 전에 펌웨어 업데이트가 실행되어 메모리 경계 외 쓰기(out-of-bounds write) 오류를 유발할 수 있습니다.
💡 쉬운 설명
Wi-Fi 채널 정보를 업데이트할 때, 이전 작업이 끝나기도 전에 다음 작업을 수행하여 컴퓨터 메모리 영역을 잘못 건드리는 문제입니다. 이로 인해 시스템이 충돌하거나 보안 문제가 발생할 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
wifi: ath11k: update channel list in reg notifier instead reg worker
Currently when ath11k gets a new channel list, it will be processed
according to the following steps:
1. update new channel list to cfg80211 and queue reg_work.
2. cfg80211 handles new channel list during reg_work.
3. update cfg80211's handled channel list to firmware by
ath11k_reg_update_chan_list().
But ath11k will immediately execute step 3 after reg_work is just
queued. Since step 2 is asynchronous, cfg80211 may not have completed
handling the new channel list, which may leading to an out-of-bounds
write error:
BUG: KASAN: slab-out-of-bounds in ath11k_reg_update_chan_list
Call Trace:
ath11k_reg_update_chan_list+0xbfe/0xfe0 [ath11k]
kfree+0x109/0x3a0
ath11k_regd_update+0x1cf/0x350 [ath11k]
ath11k_regd_update_work+0x14/0x20 [ath11k]
process_one_work+0xe35/0x14c0
Should ensure step 2 is completely done before executing step 3. Thus
Wen raised patch[1]. When flag NL80211_REGDOM_SET_BY_DRIVER is set,
cfg80211 will notify ath11k after step 2 is done.
So enable the flag NL80211_REGDOM_SET_BY_DRIVER then cfg80211 will
notify ath11k after step 2 is done. At this time, there will be no
KASAN bug during the execution of the step 3.
[1] https://patchwork.kernel.org/project/linux-wireless/patch/
[email protected]/
Tested-on: WCN6855 hw2.0 PCI WLAN.HSP.1.1-03125-QCAHSPSWPL_V1_V2_SILICONZ_LITE-3
📍 영향받는 시스템
Linux kernel (ath11k driver 사용 시스템)
⚔️ 공격 벡터
로컬 공격자가 특정 네트워크 환경 변화를 유도하여 커널 메모리 오류를 발생시킴
🛡️ 대응 방법
Linux 커널을 최신 패치가 적용된 버전으로 업데이트하여 NL80211_REGDOM_SET_BY_DRIVER 플래그가 적용된 드라이버를 사용해야 함
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 해결된 패치 버전 이후인지 확인하십시오.