🇰🇷 한글 설명
Linux 커널의 rtw88 Wi-Fi 드라이버에서 PCIe 경로를 통해 DMA 버퍼 크기를 초과하는 OOB(Out-of-Bounds) 읽기 취약점이 발견되었습니다. 펌웨어에서 제어하는 패킷 길이와 오프셋의 합이 할당된 버퍼 크기보다 커질 수 있어 메모리 경계를 벗어나는 읽기 작업이 발생할 수 있습니다.
💡 쉬운 설명
Wi-Fi 장치가 데이터를 받을 때, 정해진 그릇보다 더 큰 데이터를 가져오려고 시도하여 시스템 메모리의 잘못된 부분을 읽을 수 있는 문제입니다. 이로 인해 시스템 정보가 유출되거나 프로그램이 비정상적으로 종료될 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
wifi: rtw88: fix OOB read from firmware RX descriptor exceeding DMA buffer
In rtw_pci_rx_napi(), new_len is computed as the sum of pkt_len (14-bit
descriptor field, max 16383) and pkt_offset (drv_info_sz + shift, both
firmware-controlled). The result can exceed RTK_PCI_RX_BUF_SIZE (11478),
causing an out-of-bounds read from the pre-allocated DMA buffer when
skb_put_data copies new_len bytes. The USB transport already validates
this (rtw_usb_rx_data_put checks against RTW_USB_MAX_RECVBUF_SZ); the
PCIe path does not.
Add a check that new_len does not exceed the DMA buffer size.
📍 영향받는 시스템
Linux kernel (rtw88 Wi-Fi driver using PCIe transport)
⚔️ 공격 벡터
조작된 펌웨어 디스크립터를 전송하여 PCIe DMA 버퍼의 경계를 넘어서는 데이터 읽기 유도
🛡️ 대응 방법
Linux 커널을 최신 보안 패치가 적용된 버전으로 업데이트하여 rtw_pci_rx_napi() 내의 길이 검증 로직을 적용해야 합니다.
🔧 검증 코드
현재 실행 중인 커널 버전을 확인하여 해당 취약점이 해결된 패치 버전인지 확인합니다.