OpenWRT, 악성 SSID로 원격 root 쉘 획득 가능!
OpenWRT의 LuCI 웹 인터페이스에서 XSS 취약점(Cross-Site Scripting)이 발견되어, 악성 SSID를 통해 관리자 권한 탈취 가능
취약점은 `wireless.js` 파일의 SSID 처리 과정에서 발생하며, HTML 인젝션(HTML Injection)에 대한 방어가 미흡
공격은 관리자가 무선 네트워크 스캔 페이지를 열 때, 악성 SSID가 감지되면 실행되며, 별도의 인증 절차는 불필요
CVSS 8.6점으로 심각한 수준이며, 저렴한 장비를 활용한 지속적인 공격(Persistent Attack)도 가능
XSS 취약점(XSS Vulnerability)의 기술적 분석
해당 취약점은 OpenWRT의 LuCI 웹 인터페이스 내 `wireless.js` 파일에서 발생하며, SSID(Service Set Identifier)를 `innerHTML`로 직접 삽입하는 과정에서 HTML 인젝션(HTML Injection)이 가능해진다. 특히, SSID 길이에 제한이 있지만, 여러 개의 SSID를 활용하여 우회할 수 있다. 공격자는 악성 SSID를 브로드캐스팅하고, 관리자가 무선 스캔 페이지를 열면 XSS 공격을 실행하여 원격 root 쉘(Remote Root Shell)을 획득할 수 있다.
공격 시나리오 및 영향 범위
공격은 관리자가 악성 SSID가 포함된 무선 네트워크를 스캔하는 순간 트리거된다. 공격자는 관리자가 해당 네트워크에 연결하거나, 클릭할 필요 없이 스캔 결과에 악성 SSID가 표시되기만 하면 된다. CVSS 3.1 점수 8.6점으로, 시스템에 대한 기밀성(Confidentiality), 무결성(Integrity), 가용성(Availability)을 모두 심각하게 훼손할 수 있다. 특히, 저렴한 장비를 활용하여 지속적인 공격이 가능하다는 점이 문제다.
취약점 해결 및 예방 전략
근본적인 해결책은 SSID를 `innerHTML`로 삽입하기 전에 입력값 검증(Input Validation) 및 출력값 인코딩(Output Encoding)을 적용하여 악성 스크립트 실행을 막는 것이다. 또한, 최소 권한 원칙(Principle of Least Privilege)을 적용하여 관리자 권한 범위를 제한하고, 주기적인 보안 감사 및 취약점 분석을 수행해야 한다. 데이터 미저장 정책(Zero-Retention Policy)을 통해 공격 범위를 줄이는 것도 고려할 수 있다.
과거 유사 취약점(CVE-2019-25015)과의 비교
이번 취약점은 과거 `wireless Join` 흐름에서 발견된 CVE-2019-25015와 유사한 유형의 문제다. 두 취약점 모두 SSID를 통해 XSS 공격을 수행하며, LuCI 웹 인터페이스(Web Interface)의 취약한 입력값 처리 방식을 악용한다. 하지만, 이번 취약점은 스캔 결과 자체를 공격 대상으로 삼아, 공격 성공에 필요한 관리자의 상호 작용을 최소화했다는 점에서 더욱 위험하다.