🇰🇷 한글 설명
Linux 커널의 rtl8723bs 드라이버에서 rtw_cfg80211_set_wpa_ie() 함수 호출 시 힙 버퍼 오버플로우가 발생합니다. 공격자가 조작된 WPA IE 길이를 제공할 경우, 256바이트 크기의 버퍼를 1바이트 초과하여 인접한 메모리 영역을 덮어쓸 수 있습니다.
💡 쉬운 설명
무선 랜 드라이버가 데이터를 저장할 때 정해진 방 크기보다 더 큰 데이터를 넣으려고 시도하여 발생하는 오류입니다. 이로 인해 시스템의 중요한 정보가 망가지거나 보안이 뚫릴 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
staging: rtl8723bs: fix heap buffer overflow in rtw_cfg80211_set_wpa_ie()
supplicant_ie is a 256-byte array in struct security_priv. The WPA and
WPA2 IE copy paths use:
memcpy(padapter->securitypriv.supplicant_ie, &pwpa[0], wpa_ielen + 2);
where wpa_ielen is the raw IE length field (u8, 0-255). When a local user
supplies a connect request via nl80211 with a crafted WPA IE of length 255,
wpa_ielen + 2 equals 257, overflowing the 256-byte buffer by one byte into
the adjacent last_mic_err_time field.
rtw_parse_wpa_ie() does not prevent this: its length consistency check
compares *(wpa_ie+1) against (u8)(wpa_ie_len-2), which is (u8)(255) == 255
when wpa_ie_len = 257, so the check passes silently.
Add explicit bounds checks for both the WPA and WPA2 paths before the
memcpy, rejecting any IE whose total size (wpa_ielen + 2) exceeds the
supplicant_ie buffer.
📍 영향받는 시스템
Linux kernel (rtl8723bs staging driver 포함 버전)
⚔️ 공격 벡터
로컬 사용자가 nl80211을 통해 조작된 WPA IE 길이를 포함한 연결 요청을 전송
🛡️ 대응 방법
Linux 커널을 최신 보안 패치가 적용된 버전으로 업데이트하여 memcpy 전 경계 검사 로직을 적용해야 함
🔧 검증 코드
출력된 커널 버전을 확인하여 해당 취약점이 해결된 패치 버전인지 제조사의 보안 공지와 대조하십시오.