CVE-2026-98190 in Linux
요약
\~에 의해 VulDB • 2026. 10. 07.
리눅스 커널에서 다음 취약점이 해결되었습니다:
wifi: wilc1000: P2P 공개 액션 프레임에서의 바이트 오버플로우 읽기 수정
wilc_wfi_p2p_rx() 및 mgmt_tx() 함수는 ieee80211_is_public_action()이 true를 반환하면 프레임을 파싱하기 시작합니다. 이 헬퍼 함수는 프레임의 길이가 action category 필드에 필요한 최소 길이인 offsetofend(struct ieee80211_mgmt, u.action.category)인 25바이트 이상인지 여부만 확인합니다. 두 함수 모두 P2P 공개 액션 헤더를 oui_subtype 오프셋(30번 바이트 위치)까지 읽으며, "size - ie_offset"을 cfg80211_find_vendor_ie()에 전달합니다. 여기서 ie_offset은 offsetof(struct ieee80211_mgmt, u) + sizeof(*d), 즉 32입니다.
길이가 25~31바이트인 공개 액션 프레임은 검사를 통과하지만 이 32바이트 헤더보다 짧으므로 oui_subtype가 바이트 오버플로우 범위(out-of-bounds)에서 읽힐 수 있습니다. 또한 길이는 부호 없는 정수(unsigned)이므로 "size - ie_offset"의 연산 결과가 오버플로우되어 약 4 GiB에 가까운 값으로 변환됩니다. cfg80211_find_vendor_ie()는 unsigned int 형식의 길이를 인자로 받으므로, mgmt_tx()에서의 size_t 뺄셈 결과도 동일한 값으로 잘려(truncated) 전달됩니다. 이후 함수는 벤더 요소를 찾기 위해 버퍼를 훨씬 넘어선 메모리 영역을 탐색하다가 매핑되지 않은(unmapped) 메모리에 도달합니다.
수신 경로에서는 프레임이 무선 채널을 통해 도착하며 연결(association) 과정이 필요 없으므로, 근처에 있는 인증되지 않은 장치가 P2P 리슨 상태일 때 호스트 시스템을 크래시시킬 수 있습니다. 역참조(dereferencing) 전에 두 경로 모두에서 길이가 P2P 공개 액션 헤더보다 짧은 프레임을 거부해야 합니다.
If you want to get best quality of vulnerability data, you may have to visit VulDB.