🇰🇷 한글 설명
Linux 커널의 mac80211 드라이버에서 mesh 데이터 처리 중 skb->cb 저장 공간을 재사용하는 과정에서 발생하는 취약점입니다. 특정 경로에서 메모리가 초기화되거나 해제된 후 해당 메모리에 접근하여 KASAN slab-use-after-free 오류를 유발할 수 있습니다.
💡 쉬운 설명
무선 네트워크 데이터를 처리하는 과정에서 이미 사용이 끝나서 지워졌거나 버려진 메모리 공간을 다시 읽으려고 시도하는 오류입니다. 이로 인해 시스템이 불안정해지거나 보안 문제가 발생할 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
wifi: mac80211: capture fast-RX rate before mesh reuses skb->cb
ieee80211_invoke_fast_rx() reads RX status through
IEEE80211_SKB_RXCB(skb), which aliases the same skb->cb storage
that ieee80211_rx_mesh_data() reuses as IEEE80211_TX_INFO. In the
unicast forward path, mesh_data does:
info = IEEE80211_SKB_CB(fwd_skb);
memset(info, 0, sizeof(*info));
on the same skb the caller still names via rx->skb, then either
queues the skb for TX (success) or kfree_skb()'s it (no-route)
before returning RX_QUEUED. The caller's RX_QUEUED arm then
calls sta_stats_encode_rate(status) on memory that is either
zeroed (success path) or freed (no-route path). The latter is
KASAN slab-use-after-free in ieee80211_prepare_and_rx_handle.
Fix by encoding the rate from status before invoking
ieee80211_rx_mesh_data(), so the RX_QUEUED arm consumes a value
captured while status was still backed by valid memory.
📍 영향받는 시스템
Linux kernel (mac80211 subsystem)
⚔️ 공격 벡터
특수하게 조작된 무선 패킷을 전송하여 커널의 메모리 관리 오류를 유도
🛡️ 대응 방법
Linux 커널을 최신 보안 패치가 적용된 버전으로 업데이트
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 해결된 패치 버전 이후인지 확인