🇰🇷 한글 설명
Linux 커널의 ath12k Wi-Fi 드라이버에서 발생한 취약점으로, vdev 삭제 과정 중 arvif->ar 포인터가 NULL이 될 수 있는 문제가 있습니다. 이로 인해 ath12k_dp_tx_get_encap_type() 함수 호출 시 잘못된 역참조가 발생하여 커널 패닉(시스템 중단)을 유발할 수 있습니다.
💡 쉬운 설명
Wi-Fi를 사용하는 과정에서 특정 데이터가 삭제될 때 시스템이 참조해야 할 정보가 사라져 컴퓨터가 갑자기 멈추거나 재부팅될 수 있는 오류입니다. 드라이버가 이미 가지고 있는 안전한 정보를 직접 사용하도록 수정하여 이 문제를 방지합니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
wifi: ath12k: Pass ab pointer directly to ath12k_dp_tx_get_encap_type()
In ath12k_dp_tx_get_encap_type(), the arvif parameter is only used to
retrieve the ab pointer. In vdev delete sequence the arvif->ar could
become NULL and that would trigger kernel panic.
Since the caller ath12k_dp_tx() already has a valid ab pointer, pass it
directly to avoid panic and unnecessary dereferencing.
PC points to "ath12k_dp_tx+0x228/0x988 [ath12k]"
LR points to "ath12k_dp_tx+0xc8/0x988 [ath12k]".
The Backtrace obtained is as follows:
ath12k_dp_tx+0x228/0x988 [ath12k]
ath12k_mac_tx_check_max_limit+0x608/0x920 [ath12k]
ieee80211_process_measurement_req+0x320/0x348 [mac80211]
ieee80211_tx_dequeue+0x9ac/0x1518 [mac80211]
ieee80211_tx_dequeue+0xb14/0x1518 [mac80211]
ieee80211_tx_prepare_skb+0x224/0x254 [mac80211]
ieee80211_xmit+0xec/0x100 [mac80211]
__ieee80211_subif_start_xmit+0xc50/0xf40 [mac80211]
ieee80211_subif_start_xmit+0x2e8/0x308 [mac80211]
netdev_start_xmit+0x150/0x18c
dev_hard_start_xmit+0x74/0xc0
Tested-on: QCN9274 hw2.0 PCI WLAN.WBE.1.3.1-00173-QCAHKSWPL_SILICONZ-1
📍 영향받는 시스템
Linux kernel (ath12k driver)
⚔️ 공격 벡터
로컬 또는 네트워크를 통한 특정 Wi-Fi 트래픽 처리 중 vdev 삭제 시나리오 유도
🛡️ 대응 방법
Linux 커널을 최신 보안 패치가 적용된 버전으로 업데이트하여 ath12k 드라이버의 포인터 전달 방식을 수정해야 합니다.
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 해결된 패치 버전 이후인지 확인합니다.