🇰🇷 한글 설명
Linux 커널의 mt76 wifi 드라이버 내 mt7921 모듈에서 mt7921_roc_abort_sync 함수 호출 시 데드락(교착 상태)이 발생할 수 있는 취약점입니다. 스테이션 제거 과정에서 특정 뮤텍스를 보유한 상태로 작업 종료를 기다릴 때, 서로가 서로의 자원을 기다리며 시스템이 멈추는 현상이 발생합니다.
💡 쉬운 설명
와이파이 연결을 끊는 과정에서 컴퓨터의 핵심 소프트웨어가 서로의 작업이 끝나기만을 기다리며 무한히 대기하는 상태에 빠질 수 있습니다. 이로 인해 시스템이 응답하지 않거나 멈추는 현상이 발생할 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
wifi: mt76: mt7921: fix potential deadlock in mt7921_roc_abort_sync
roc_abort_sync() can deadlock with roc_work(). roc_work() holds
dev->mt76.mutex, while cancel_work_sync() waits for roc_work()
to finish. If the caller already owns the same mutex, both
sides block and no progress is possible.
This deadlock can occur during station removal when
mt76_sta_state() -> mt76_sta_remove() -> mt7921_mac_sta_remove() ->
mt7921_roc_abort_sync() invokes cancel_work_sync() while
roc_work() is still running and holding dev->mt76.mutex.
This avoids the mutex deadlock and preserves exactly-once
work ownership.
📍 영향받는 시스템
mt76 드라이버를 사용하는 Linux 커널 기반 시스템 (mt7921 칩셋 사용 기기)
⚔️ 공격 벡터
로컬 환경에서 특정 네트워크 스테이션(STA)을 반복적으로 연결 및 해제하여 데드락 유도
🛡️ 대응 방법
mt76 드라이버의 데드락 수정 사항이 포함된 최신 Linux 커널로 업데이트
🔧 검증 코드
현재 사용 중인 커널 버전과 mt76 모듈의 정보를 확인하여 패치 적용 여부를 판단합니다.
uname -r && modinfo mt76 | grep -i version