🇰🇷 한글 설명
Linux 커널의 mac80211 드라이버에서 AP_VLAN 버퍼를 해제할 때 인터럽트(IRQ) 잠금 상태에서 부적절하게 SKB를 해제하는 취약점이 발견되었습니다. 이로 인해 네트워크 상태 보고 과정에서 커널 패닉이나 시스템 불안정을 초래할 수 있는 레이스 컨디션이 발생할 수 있습니다.
💡 쉬운 설명
무선 랜 카드가 작동하는 과정에서 데이터를 정리할 때, 시스템의 중요한 통제권을 쥐고 있는 상태에서 무리하게 작업을 수행하여 시스템이 멈추거나 오류가 날 수 있는 문제입니다. 데이터를 안전하게 정리하기 전에 먼저 통제권을 내려놓도록 수정이 필요합니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
wifi: mac80211: free AP_VLAN bc_buf SKBs outside IRQ lock
ieee80211_do_stop() removes AP_VLAN packets from the parent AP
ps->bc_buf while holding ps->bc_buf.lock with IRQs disabled. It then
calls ieee80211_free_txskb() before dropping the lock.
ieee80211_free_txskb() is not just a passive SKB release. For SKBs with
TX status state it can report a dropped frame through cfg80211/nl80211,
and that path can reach netlink tap transmit. This is the same reason
the pending queue cleanup in ieee80211_do_stop() already unlinks SKBs
under the queue lock and frees them after IRQ state is restored.
The buggy scenario involves two paths, with each column showing the
order within that path:
AP_VLAN management TX: AP_VLAN stop:
1. attach ACK-status state 1. clear the running state
2. queue a multicast SKB on 2. take ps->bc_buf.lock with IRQs
parent ps->bc_buf disabled
3. unlink the AP_VLAN SKB
4. call ieee80211_free_txskb()
Unlink matching AP_VLAN SKBs from ps->bc_buf under the existing lock,
but move them to a local free queue. Drop the lock and restore IRQ state
before calling ieee80211_free_txskb().
WARNING: kernel/softirq.c:430 at __local_bh_enable_ip
📍 영향받는 시스템
Linux kernel (mac80211 subsystem)
⚔️ 공격 벡터
로컬 네트워크 환경에서 특정 무선 네트워크 설정 및 트래픽을 유도하여 커널 오류 유발
🛡️ 대응 방법
Linux 커널을 최신 보안 패치가 적용된 버전으로 업데이트하십시오.
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 해결된 패치 버전 이후인지 확인하십시오.
💻 영향받는 소프트웨어
NVIDIA vGPU Guest Driver for Linux