🇰🇷 한글 설명
Linux 커널의 rtw89 드라이버에서 하드웨어가 잘못된 mac_id를 보고할 경우 배열의 범위를 벗어난 메모리에 접근하는 취약점이 발견되었습니다. 이로 인해 메모리 오염이 발생할 수 있으며, 인덱스 검증 로직을 추가하여 이를 해결했습니다.
💡 쉬운 설명
무선 랜 카드가 잘못된 정보를 보낼 때 컴퓨터의 메모리 영역을 침범하여 오류를 일으킬 수 있는 문제입니다. 시스템이 예상치 못한 동작을 하거나 멈출 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
rtw89: cfo: check mac_id to avoid out-of-bounds
Somehow, hardware reports incorrect mac_id and pollute memory. Check index
before we access the array.
UBSAN: array-index-out-of-bounds in rtw89/phy.c:2517:23
index 188 is out of range for type 's32 [64]'
CPU: 1 PID: 51550 Comm: irq/35-rtw89_pc Tainted: G OE
Call Trace:
<IRQ>
show_stack+0x52/0x58
dump_stack_lvl+0x4c/0x63
dump_stack+0x10/0x12
ubsan_epilogue+0x9/0x45
__ubsan_handle_out_of_bounds.cold+0x44/0x49
? __alloc_skb+0x92/0x1d0
rtw89_phy_cfo_parse+0x44/0x7f [rtw89_core]
rtw89_core_rx+0x261/0x871 [rtw89_core]
? __alloc_skb+0xee/0x1d0
rtw89_pci_napi_poll+0x3fa/0x4ea [rtw89_pci]
__napi_poll+0x33/0x1a0
net_rx_action+0x126/0x260
? __queue_work+0x217/0x4c0
__do_softirq+0xd9/0x315
? disable_irq_nosync+0x10/0x10
do_softirq.part.0+0x6d/0x90
</IRQ>
<TASK>
__local_bh_enable_ip+0x62/0x70
rtw89_pci_interrupt_threadfn+0x182/0x1a6 [rtw89_pci]
irq_thread_fn+0x28/0x60
irq_thread+0xc8/0x190
? irq_thread_fn+0x60/0x60
kthread+0x16b/0x190
? irq_thread_check_affinity+0xe0/0xe0
? set_kthread_struct+0x50/0x50
ret_from_fork+0x22/0x30
</TASK>
📍 영향받는 시스템
rtw89 드라이버를 사용하는 Linux 커널 시스템
⚔️ 공격 벡터
조작된 하드웨어 신호 또는 잘못된 MAC ID를 보고하는 하드웨어를 통한 메모리 오염
🛡️ 대응 방법
rtw89 드라이버의 인덱스 검증 로직이 포함된 최신 Linux 커널로 업데이트
🔧 검증 코드
현재 실행 중인 커널 버전을 확인하여 취약점이 패치된 버전인지 확인합니다.