🇰🇷 한글 설명
Linux 커널의 ath12k 드라이버에서 확장 통계 모드 활성화 시 메모리 누수가 발생하는 취약점입니다. 통계 수집을 위해 HAL_RX_MPDU_START TLV를 처리하는 과정에서 할당된 mon_mpdu 객체가 해제되지 않아 메모리가 지속적으로 소모됩니다.
💡 쉬운 설명
와이파이 통계 기능을 켤 때 컴퓨터의 메모리를 사용한 뒤 제대로 돌려주지 않는 버그가 발견되었습니다. 이 문제가 계속되면 시스템의 메모리가 부족해져 성능이 떨어지거나 멈출 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
wifi: ath12k: Avoid memory leak while enabling statistics
Driver uses monitor destination rings for extended statistics mode and
standalone monitor mode. In extended statistics mode, TLVs are parsed from
the buffer received from the monitor destination ring and assigned to the
ppdu_info structure to update per-packet statistics. In standalone monitor
mode, along with per-packet statistics, the packet data (payload) is
captured, and the driver updates per MSDU to mac80211.
When the AP interface is enabled, only extended statistics mode is
activated. As part of enabling monitor rings for collecting statistics,
the driver subscribes to HAL_RX_MPDU_START TLV in the filter
configuration. This TLV is received from the monitor destination ring, and
kzalloc for the mon_mpdu object occurs, which is not freed, leading to a
memory leak. The kzalloc for the mon_mpdu object is only required while
enabling the standalone monitor interface. This causes a memory leak while
enabling extended statistics mode in the driver.
Fix this memory leak by removing the kzalloc for the mon_mpdu object in
the HAL_RX_MPDU_START TLV handling. Additionally, remove the standalone
monitor mode handlings in the HAL_MON_BUF_ADDR and HAL_RX_MSDU_END TLVs.
These TLV tags will be handled properly when enabling standalone monitor
mode in the future.
Tested-on: QCN9274 hw2.0 PCI WLAN.WBE.1.3.1-00173-QCAHKSWPL_SILICONZ-1
Tested-on: WCN7850 hw2.0 PCI WLAN.HMT.1.0.c5-00481-QCAHMTSWPL_V1.0_V2.0_SILICONZ-3
📍 영향받는 시스템
Linux kernel (ath12k driver used in QCN9274, WCN7850 hardware)
⚔️ 공격 벡터
로컬 공격자가 통계 모드를 반복적으로 활성화하여 시스템 메모리 고갈 유도 (DoS)
🛡️ 대응 방법
Linux 커널을 최신 보안 패치가 적용된 버전으로 업데이트하여 ath12k 드라이버의 메모리 누수 수정 사항 반영
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 수정된 최신 패치 버전인지 확인