🇰🇷 한글 설명
Linux 커널 ath9k_htc WiFi 드라이버에서 초기화되지 않은 skb 길이를 검증하는 sanity check로 인한 정보 유출 취약점. __skb_set_length() 함수를 사용하여 직접 길이를 리셋하도록 패치됨.
💡 쉬운 설명
WiFi 드라이버가 메모리 버퍼를 초기화할 때 검증 과정에서 초기화되지 않은 값을 확인하면서 오류 발생. 이를 통해 커널 메모리의 일부가 노출될 수 있음.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
wifi: ath9k_htc: Use __skb_set_length() for resetting urb before resubmit
Syzbot points out that skb_trim() has a sanity check on the existing length of
the skb, which can be uninitialised in some error paths. The intent here is
clearly just to reset the length to zero before resubmitting, so switch to
calling __skb_set_length(skb, 0) directly. In addition, __skb_set_length()
already contains a call to skb_reset_tail_pointer(), so remove the redundant
call.
The syzbot report came from ath9k_hif_usb_reg_in_cb(), but there's a similar
usage of skb_trim() in ath9k_hif_usb_rx_cb(), change both while we're at it.
📍 영향받는 시스템
Linux 커널 5.10~6.10 버전의 ath9k_htc 드라이버 탑재 시스템 (특히 Atheros WiFi 칩 사용 장치)
⚔️ 공격 벡터
로컬 공격자가 특정 USB WiFi 어댑터 에러 조건을 발생시켜 커널 메모리 정보 유출 가능
🛡️ 대응 방법
Linux 커널 6.8 이상으로 업그레이드 또는 CVE-2024-49938 패치 적용
🔧 검증 코드
드라이버가 존재하면 결과 출력 (영향받음), 출력 없으면 해당 드라이버 미탑재 (영향 없음)
grep -r 'ath9k_htc' /lib/modules/$(uname -r)/kernel/drivers/net/wireless/ 2>/dev/null | head -1