🇰🇷 한글 설명
Linux 커널의 mac80211_hwsim 모듈에서 stop queue drain 과정 중 NULL skb(네트워크 패킷 구조체)를 참조할 수 있는 취약점이 발견되었습니다. 기존 코드는 큐가 비어있는지 확인한 후 별도로 데이터를 꺼내는 과정에서 경합 조건(Race Condition)이 발생하여 NULL 포인터를 참조할 위험이 있었습니다.
💡 쉬운 설명
무선 네트워크 시뮬레이션 기능이 작동을 멈출 때, 데이터가 남아있는지 확인하는 과정에서 오류가 발생할 수 있습니다. 이 과정에서 빈 데이터를 처리하려고 시도하다가 시스템이 충돌하거나 예상치 못한 동작을 일으킬 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
wifi: mac80211_hwsim: avoid NULL skb in stop queue drain
mac80211_hwsim_stop() drops any frames left in data->pending. The loop
currently checks skb_queue_empty() and then dequeues separately.
That split is racy with TX status handling, which can remove a pending
frame under the queue lock. If the last entry is removed after the empty
check, skb_dequeue() returns NULL and the stop path passes that NULL skb
to ieee80211_free_txskb().
Use skb_dequeue() as the loop condition instead. The dequeue result is the
object that stop owns and frees, and a concurrent status completion that
empties the queue simply makes the loop terminate.
📍 영향받는 시스템
Linux kernel (mac80211_hwsim 모듈을 사용하는 환경)
⚔️ 공격 벡터
로컬 시스템에서 특정 네트워크 시뮬레이션 시나리오를 유도하여 경합 조건을 발생시킴
🛡️ 대응 방법
Linux 커널을 최신 보안 패치가 적용된 버전으로 업데이트
🔧 검증 코드
출력된 커널 버전을 확인하여 해당 취약점이 해결된 패치 버전인지 확인