🇰🇷 한글 설명
Linux 커널의 ath12k Wi-Fi 드라이버에서 qmi_invoke_handler() 함수가 배열의 경계를 벗어나 메모리에 접근하는 취약점이 발견되었습니다. ath12k_qmi_msg_handlers 배열에 종료 항목(terminator entry)이 누락되어 발생하며, 이로 인해 KASAN 경고 및 시스템 불안정을 초래할 수 있습니다.
💡 쉬운 설명
Wi-Fi를 제어하는 프로그램이 목록의 끝을 확인하지 못하고 목록 너머의 잘못된 메모리 영역을 읽으려다 발생하는 오류입니다. 이로 인해 시스템이 멈추거나 예상치 못한 동작을 할 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
wifi: ath12k: fix out-of-bound access of qmi_invoke_handler()
Currently, there is no terminator entry for ath12k_qmi_msg_handlers hence
facing below KASAN warning,
==================================================================
BUG: KASAN: global-out-of-bounds in qmi_invoke_handler+0xa4/0x148
Read of size 8 at addr ffffffd00a6428d8 by task kworker/u8:2/1273
CPU: 0 PID: 1273 Comm: kworker/u8:2 Not tainted 5.4.213 #0
Workqueue: qmi_msg_handler qmi_data_ready_work
Call trace:
dump_backtrace+0x0/0x20c
show_stack+0x14/0x1c
dump_stack+0xe0/0x138
print_address_description.isra.5+0x30/0x330
__kasan_report+0x16c/0x1bc
kasan_report+0xc/0x14
__asan_load8+0xa8/0xb0
qmi_invoke_handler+0xa4/0x148
qmi_handle_message+0x18c/0x1bc
qmi_data_ready_work+0x4ec/0x528
process_one_work+0x2c0/0x440
worker_thread+0x324/0x4b8
kthread+0x210/0x228
ret_from_fork+0x10/0x18
The address belongs to the variable:
ath12k_mac_mon_status_filter_default+0x4bd8/0xfffffffffffe2300 [ath12k]
[...]
==================================================================
Add a dummy terminator entry at the end to assist the qmi_invoke_handler()
in traversing up to the terminator entry without accessing an
out-of-boundary index.
Tested-on: QCN9274 hw2.0 PCI WLAN.WBE.1.0.1-00029-QCAHKSWPL_SILICONZ-1
📍 영향받는 시스템
Linux kernel (ath12k driver 사용 시스템)
⚔️ 공격 벡터
특수하게 조작된 QMI 메시지를 전송하여 커널 메모리 경계 외 접근 유도
🛡️ 대응 방법
ath12k_qmi_msg_handlers 배열 끝에 더미 종료 항목을 추가한 최신 커널 패치 적용
🔧 검증 코드
현재 실행 중인 커널 버전을 확인하여 해당 취약점이 수정된 패치 버전인지 확인합니다.