🇰🇷 한글 설명
Linux 커널의 ath12k Wi-Fi 드라이버에서 장치 언바인딩 시 발생하는 커널 패닉 취약점입니다. 펌웨어 초기화 오류 발생 시 리소스가 중복 해제되면서 NULL 포인터 역참조로 인해 시스템이 충돌할 수 있습니다.
💡 쉬운 설명
Wi-Fi 장치를 연결하거나 해제하는 과정에서 컴퓨터가 갑자기 멈추거나 꺼질 수 있는 오류입니다. 특정 상황에서 이미 정리된 메모리를 다시 정리하려고 시도할 때 발생합니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
wifi: ath12k: fix crash when unbinding
If there is an error during some initialization related to firmware,
the function ath12k_dp_cc_cleanup is called to release resources.
However this is released again when the device is unbinded (ath12k_pci),
and we get:
BUG: kernel NULL pointer dereference, address: 0000000000000020
at RIP: 0010:ath12k_dp_cc_cleanup.part.0+0xb6/0x500 [ath12k]
Call Trace:
ath12k_dp_cc_cleanup
ath12k_dp_free
ath12k_core_deinit
ath12k_pci_remove
...
The issue is always reproducible from a VM because the MSI addressing
initialization is failing.
In order to fix the issue, just set to NULL the released structure in
ath12k_dp_cc_cleanup at the end.
📍 영향받는 시스템
ath12k 드라이버를 사용하는 Linux 커널 시스템 (특히 MSI 주소 지정 초기화에 실패하는 가상 머신 환경)
⚔️ 공격 벡터
로컬 공격자가 장치 드라이버의 언바인딩 과정을 유도하여 시스템 충돌(DoS)을 일으킬 수 있음
🛡️ 대응 방법
리소스를 해제한 후 해당 구조체를 NULL로 설정하는 최신 Linux 커널 패치 적용
🔧 검증 코드
현재 실행 중인 커널 버전을 확인하여 해당 취약점이 해결된 패치 버전인지 확인합니다.