🇰🇷 한글 설명
Linux 커널의 mt76 mt7925 드라이버에서 MMIO 방식이 아닌 버스(예: USB)를 사용할 때 TXRX_NOTIFY 이벤트를 잘못 처리하여 발생하는 취약점입니다. 이로 인해 NULL 포인터 역참조가 발생하여 커널 패닉(BUG)이 유발될 수 있습니다.
💡 쉬운 설명
무선 랜카드가 특정 방식으로 데이터를 주고받을 때, 컴퓨터가 처리할 수 없는 명령을 내려 시스템이 갑자기 멈추거나 꺼질 수 있는 오류입니다. 특히 USB 연결 방식의 무선 랜카드에서 발생할 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
wifi: mt76: mt7925: drop TXRX_NOTIFY on non-mmio buses
PKT_TYPE_TXRX_NOTIFY is an mmio-only event, but mt7925_rx_check() and
mt7925_queue_rx_skb() dispatch it to mt7925_mac_tx_free() on every bus.
mt7925_mac_tx_free() cleans the DMA tx queues with
mt76_queue_tx_cleanup(), which calls queue_ops->tx_cleanup(). Only the
mmio queue ops implement that callback; on USB it is NULL, so a
TXRX_NOTIFY there calls a NULL pointer in the RX worker:
BUG: kernel NULL pointer dereference, address: 0000000000000000
RIP: 0010:0x0
Call Trace:
mt7925_mac_tx_free+0x58/0x350 [mt7925_common]
mt7925_rx_check+0xe2/0x130 [mt7925_common]
mt76u_rx_worker+0x1b9/0x620 [mt76_usb]
Drop the event on non-mmio buses via mt76_is_mmio(), as in
commit 5683e1488aa9 ("wifi: mt76: connac: do not check WED status for
non-mmio devices").
📍 영향받는 시스템
Linux kernel (mt76 mt7925 driver using non-MMIO buses like USB)
⚔️ 공격 벡터
특수하게 조작된 네트워크 패킷 또는 이벤트를 통해 드라이버의 RX 워커를 트리거하여 커널 NULL 포인터 역참조 유도
🛡️ 대응 방법
Linux 커널을 최신 패치가 적용된 버전으로 업데이트하여 mt76_is_mmio() 체크 로직이 포함된 드라이버를 사용하십시오.
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 수정된 패치 버전 이후인지 확인하십시오.
💻 영향받는 소프트웨어
NVIDIA vGPU Guest Driver for Linux