[하루한줄] CVE-2020-9395: Realtek's Wi-Fi module remote root access

URL

Major Vulnerabilities discovered and patched in Realtek RTL8195A Wi-Fi Module

Target

Realtek’s RTL8195A Wi-Fi module

Explain

Vdoo가 Realtek RTL8195A Wi-Fi 모듈에서 발생하는 취약점(CVE-2020-9395)의 세부 정보를 공개했습니다. RTL8195A는 임베디드 장비용 low-power Wi-Fi 모듈로 WPA2 handshake 동작에 stack overflow, out-of-bound read 취약점이 존재합니다. 해커는 취약점을 통해 원격으로 모듈의 root를 탈취할 수 있고 이 모듈이 탑재된 임베디드 장비의 모든 무선 통신을 조작할 수 있게 됩니다.

WPA2 handshake의 EAPOL-Key 교환 작업 중 Client는 ClientEAPOLKeyRecvd()를 Server는 EAPOLKeyRecvd()를 호출합니다. 두 함수 모두 CheckMIC()를 호출해 EAP 패킷의 MIC에 대한 무결성 검증을 진행합니다.

rtl_memcpy(tmpbuf, EAPOLMsgRecvd.Octet, EAPOLMsgRecvd.Length);

ChckMIC()에는 unsafe copy를 하는 코드가 존재합니다. tmpbuf의 크기는 512 bytes로 고정되어 있지만 EAPOLMsgRecvd.OctetEAPOLMsgRecvd.Length 모두 해커가 아무 제약 없이 조작할 수 있습니다(attack-controlled). NX-bit, ASLR, Canary 등 보호 기법이 존재하지 않아 tmpbuf 보다 큰 사이즈의 조작된 packet을 통해 CheckMIC()의 리턴 주소를 조작해 RCE 또는 DoS 등의 공격이 가능합니다.