🇰🇷 한글 설명
Linux 커널의 mt7996 Wi-Fi 드라이버에서 뮤텍스(mutex) 잠금 순서 문제로 인해 레이스 컨디션(Race Condition)이 발생할 수 있습니다. 채널 전환과 리셋 경로가 동시에 실행될 경우, 작업자 스레드가 잘못된 상태로 유지되어 DMA 링의 디스크립터나 토큰이 손상될 수 있습니다.
💡 쉬운 설명
Wi-Fi 장치가 채널을 바꾸는 도중에 동시에 초기화 명령이 내려지면 데이터 처리 과정에서 충돌이 발생할 수 있습니다. 이 충돌로 인해 시스템 데이터가 깨지거나 장치가 오작동할 위험이 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
wifi: mt76: mt7996: hold dev->mt76.mutex while disabling tx worker in SER
mt7996_mac_reset_work() parked the tx worker and disabled the RX/TX NAPIs
before taking dev->mt76.mutex. mt76_worker_disable()/_enable() are plain
kthread park/unpark, not refcounted, and __mt76_set_channel() toggles the
same worker and the MT76_RESET bit under the mutex. An L1 SER racing a
channel switch could therefore have the worker unparked and MT76_RESET
cleared while the reset path resets the DMA rings, corrupting descriptors
or tokens. Take the mutex before disabling the worker, as mt7915 does.
📍 영향받는 시스템
Linux kernel (mt76/mt7996 driver 포함 버전)
⚔️ 공격 벡터
특정 네트워크 환경에서 채널 전환과 장치 리셋을 동시에 유도하는 레이스 컨디션 공격
🛡️ 대응 방법
Linux 커널을 최신 보안 패치가 적용된 버전으로 업데이트하여 뮤텍스 잠금 순서를 수정해야 합니다.
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 해결된 패치 버전 이후인지 확인합니다.