🇰🇷 한글 설명
Linux 커널의 mt76 무선 드라이버(mt7603)에서 모니터 인터페이스로 주입된 프레임을 처리할 때 사용하는 전역 스테이션 WCID가 초기화되지 않은 채 공개되어, 첫 프레임 전송 시 NULL 포인터 역참조가 발생합니다. 개발자는 WCID를 공개하기 전에 초기화하도록 수정했습니다.
💡 쉬운 설명
무선 랜카드 드라이버의 내부 초기화 누락으로 인해, 특정 모드에서 프레임을 보내면 시스템이 충돌할 수 있습니다. 수정 코드가 적용되면 이 문제가 해결됩니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
wifi: mt76: mt7603: initialize global station WCID
mt7603 uses a driver-private global station WCID for frames that have
neither a station nor a vif, including frames injected through a monitor
interface. Unlike the core global WCID initialized by
mt76_register_device(), this WCID is published without ever being passed
to mt76_wcid_init().
Since commit 0335c034e726 ("wifi: mt76: fix race condition related to
checking tx queue fill status"), mt76_tx() queues every such frame on the
WCID's tx_pending or tx_offchannel queue and links its tx_list. The first
injected frame therefore reaches __skb_queue_tail() with an uninitialized
sk_buff_head and dereferences a NULL prev pointer.
Initialize the WCID before publishing it.
The fix was tested on an MT7603 PCIe device. Three wildcard probe requests
were injected through a monitor interface. The hardware queue head and tail
advanced from 0 to 3 and a second radio captured the third request over the
air. No oops or reset occurred. After restoring AP mode, a 150 MB transfer
also completed without a reset.
📍 영향받는 시스템
MediaTek MT7603 무선 칩을 사용하고 mt76 드라이버를 적용한 Linux 커널 (수정 커밋 이전 버전)
⚔️ 공격 벡터
로컬 권한을 가진 사용자가 모니터 모드 인터페이스로 프레임을 주입하여 커널 패닉 또는 드라이버 중단을 유발할 수 있음
🛡️ 대응 방법
커널을 제조사/배포판이 제공하는 mt76 드라이버 수정이 포함된 최신 버전으로 업데이트
🔧 검증 코드
커널 버전이 수정 패치가 포함된 버전 이상인지 배포판 보안 공지와 대조하고, mt7603 모듈이 로드되어 있지 않다면 해당 취약점의 영향을 받지 않습니다.
uname -r && lsmod | grep mt7603