🔍 CVE-2026-90399

8.4
CVSS Score
HIGH
2026-09-17
2026-10-21 13:20
✅ 완료

🇰🇷 한글 설명

Linux 커널의 ath12k Wi-Fi 드라이버에서 mac_phy_caps_parse() 함수 호출 시 메모리 할당 크기와 실제 복사되는 데이터 간의 불일치가 발생합니다. 펌웨어가 짧은 TLV 데이터를 보낼 경우, 메모리 할당 범위를 벗어난 영역에 데이터가 쓰여지는 힙 오버플로우 취약점이 존재합니다.

💡 쉬운 설명

Wi-Fi 장치와 통신할 때 데이터를 담을 그릇을 실제 필요한 크기보다 작게 만드는 오류가 있습니다. 이로 인해 넘치는 데이터가 다른 메모리 영역을 침범하여 시스템 오류나 보안 문제를 일으킬 수 있습니다.

🇺🇸 원문 (English)

In the Linux kernel, the following vulnerability has been resolved: wifi: ath12k: fix stride mismatch in mac_phy_caps_parse() Currently, in ath12k_wmi_mac_phy_caps_parse(), kzalloc() sizes the mac_phy_caps buffer as tot_phy_id * len, where len is clamped to min(firmware_len, sizeof(struct ath12k_wmi_mac_phy_caps_params)). The subsequent memcpy() destination advances by sizeof(full struct) per slot via C pointer arithmetic, not by the clamped len. When firmware sends short TLVs, the second and later slots are written past the end of the allocation. The reader in ath12k_pull_mac_phy_cap_svc_ready_ext() also indexes the buffer with full-struct pointer arithmetic, so the allocation must match that stride. Fix by using kzalloc_objs(), which derives the element size from the pointer type, making allocation size and pointer stride provably consistent regardless of what len the firmware provides. Tested-on: WCN7850 hw2.0 PCI WLAN.HMT.1.1.c7-00108-QCAHMTSWPL_V1.0_V2.0_SILICONZ_UPSTREAM-3

📍 영향받는 시스템

Linux kernel (ath12k Wi-Fi driver 사용 시스템)

⚔️ 공격 벡터

조작된(짧은 길이의) WMI 메시지를 전송하는 악성 펌웨어를 통한 힙 오버플로우 공격

🛡️ 대응 방법

kzalloc() 대신 요소 크기를 자동으로 계산하는 kzalloc_objs()를 사용하도록 커널 패치 적용

🔧 검증 코드

출력된 커널 버전이 해당 취약점이 수정된 패치 버전인지 배포판 보안 공지를 통해 확인하십시오.

Shell / Script
uname -r

📊 CVSS Vector String

CVSS Vector
CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H

💻 영향받는 소프트웨어

Linux Kernel