🇰🇷 한글 설명
Linux 커널의 ath9k 무선 드라이버에서 WMI 명령 타임아웃 발생 시, 이미 해제된 스택 버퍼(cmd_rsp_buf)에 대해 응답 콜백이 쓰기를 수행하는 스택 범위 초과 쓰기 취약점이 수정되었습니다. 타임아웃 시 wmi->last_seq_id를 0으로 설정하여 문제를 해결합니다.
💡 쉬운 설명
무선 랜카드 드라이버가 시간 초과 후 더 이상 유효하지 않은 메모리 영역에 데이터를 쓰는 문제가 있었습니다. 이로 인해 시스템이 불안정해지거나 악의적인 코드가 실행될 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
wifi: ath9k: Fix potential stack-out-of-bounds write in ath9k_wmi_rsp_callback()
Fix a stack-out-of-bounds write that occurs in a WMI response callback
function that is called after a timeout occurs in ath9k_wmi_cmd().
The callback writes to wmi->cmd_rsp_buf, a stack-allocated buffer that
could no longer be valid when a timeout occurs. Set wmi->last_seq_id to
0 when a timeout occurred.
Found by a modified version of syzkaller.
BUG: KASAN: stack-out-of-bounds in ath9k_wmi_ctrl_rx
Write of size 4
Call Trace:
memcpy
ath9k_wmi_ctrl_rx
ath9k_htc_rx_msg
ath9k_hif_usb_reg_in_cb
__usb_hcd_giveback_urb
usb_hcd_giveback_urb
dummy_timer
call_timer_fn
run_timer_softirq
__do_softirq
irq_exit_rcu
sysvec_apic_timer_interrupt
📍 영향받는 시스템
Linux 커널의 ath9k 무선 드라이버(ath9k_htc USB 무선 랜카드)를 사용하는 수정 이전 커널 버전
⚔️ 공격 벡터
공격자가 USB로 연결된 조작된 ath9k_htc 장치 응답이나 무선 드라이버 경로를 통해 타임아웃 상황을 유발하여 커널 메모리를 손상시킬 수 있음
🛡️ 대응 방법
커널을 해당 취약점 수정이 포함된 최신 안정 버전으로 업데이트하고 재부팅
🔧 검증 코드
커널 버전이 수정 패치가 포함된 버전 이상인지 확인하고, ath9k_htc 모듈이 로드되지 않았다면 해당 취약점에 노출되지 않은 것으로 판단하며, 로드되어 있다면 커널 업데이트를 적용해야 합니다.
uname -r && lsmod | grep ath9k_htc