🇰🇷 한글 설명
Linux 커널의 ath12k 무선 랜 드라이버에서 ath12k_pci_remove() 함수가 ATH12K_FLAG_QMI_FAIL 플래그가 설정된 경우 ath12k_pci_probe()에서 할당한 펌웨어 메모리를 해제하지 않아 메모리 누수가 발생합니다. 이 문제는 ath12k_fw_unmap()을 호출하여 해결됩니다.
💡 쉬운 설명
무선 랜 드라이버를 제거할 때 사용하던 메모리가 반환되지 않고 남는 버그입니다. 장시간 반복 사용 시 시스템 메모리가 점차 줄어들 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
wifi: ath12k: fix memory leak in ath12k_pci_remove()
Kmemleak reported this error:
unreferenced object 0xffff1c165cec3060 (size 32):
comm "insmod", pid 560, jiffies 4296964570 (age 235.596s)
backtrace:
[<000000005434db68>] __kmem_cache_alloc_node+0x1f4/0x2c0
[<000000001203b155>] kmalloc_trace+0x40/0x88
[<0000000028adc9c8>] _request_firmware+0xb8/0x608
[<00000000cad1aef7>] firmware_request_nowarn+0x50/0x80
[<000000005011a682>] local_pci_probe+0x48/0xd0
[<00000000077cd295>] pci_device_probe+0xb4/0x200
[<0000000087184c94>] really_probe+0x150/0x2c0
The firmware memory was allocated in ath12k_pci_probe(), but not
freed in ath12k_pci_remove() in case ATH12K_FLAG_QMI_FAIL bit is
set. So call ath12k_fw_unmap() to free the memory.
Tested-on: WCN7850 hw2.0 PCI WLAN.HMT.2.0-02280-QCAHMTSWPL_V1.0_V2.0_SILICONZ-1
📍 영향받는 시스템
Linux 커널 중 ath12k 드라이버(WCN7850 등 Qualcomm Wi-Fi 7 PCI 칩셋)를 포함한 버전
⚔️ 공격 벡터
원격 공격 경로는 확인되지 않으며, 드라이버 로드/언로드를 반복하는 로컬 사용자나 관리자에 의한 메모리 누수 형태로만 영향을 줍니다.
🛡️ 대응 방법
커널 업데이트를 적용하여 ath12k_pci_remove()에서 ath12k_fw_unmap()이 호출되도록 수정된 버전으로 업그레이드합니다.
🔧 검증 코드
커널 버전이 수정된 배포판 패키지 버전 이상인지 확인하고, ath12k 모듈 사용 여부를 확인합니다. 모듈이 없으면 이 취약점의 영향을 받지 않습니다.
uname -r; lsmod | grep ath12k; modinfo ath12k 2>/dev/null | grep -E '^(version|srcversion|filename)'