[단독방어] 분석 — CVE-2026-15680
Lorex 2K Indoor Wi‑Fi Security Camera suffers a format‑string RCE in the sonia binary’s JSON parser; immediate network ACL blocking of unauthenticated JSON API traffic is required.
📋 요약
- 심각도 high · CVSS 7.5 · EPSS 0.0026 · 악용난이도 hard
🔍 공격 기법
네트워크에 인접한 공격자는 인증 없이 카메라의 관리 인터페이스(보통 HTTP/HTTPS)로 JSON 형식의 요청을 전송합니다. sonia 바이너리가 해당 JSON 내 문자열을 포맷 지정자(%s, %x 등)로 검증 없이 그대로 printf 계열 함수에 전달하므로, 공격자는 포맷 스트링을 이용해 스택 메모리를 조작하고 루트 권한으로 임의 코드를 실행할 수 있습니다.
악용 가능성: AV가 “Adjacent Network”(AV:A)로 정의된 만큼 공격자는 카메라와 동일한 로컬 네트워크에 존재해야 하며, 이는 물리적 접근이 제한되는 환경에서는 장벽이 됩니다. AC가 “High”(AC:H)인 이유는 취약점이 JSON 요청 내부의 문자열을 포맷 지정자로 사용하도록 하는 정교한 포맷 스트링 페이로드를 요구하고, 메모리 레이아웃과 스택 구조에 대한 사전 지식이 없으면 성공 확률이 크게 떨어지기 때문입니다. PR은 “None”(PR:N)이며 UI는 “None”(UI:N)으로, 인증이나 사용자 상호작용 없이도 공격이 가능하다는 점을 의미합니다. EPSS 값 0.0026(≈0.26 %)은 현재까지 실제 악용 사례가 매우 드물다는 실측 데이터를 제공하고, KEV에 등재되지 않은 점 역시 대규모 위협으로 전환될 위험이 낮음을 뒷받침합니다. 공격 표면
💥 영향 분석
- 성공 시 공격자는 카메라 시스템 전체를 장악하여 루트 권한 쉘을 획득합니다.
- 영상·오디오 데이터 탈취, 프라이버시 침해 및 내부 네트워크로의 추가 침투가 가능해집니다.
- 카메라 자체가 IoT 환경에서 다른 디바이스와 연동되는 경우, 신뢰 체인 전체에 악성 코드를 전파할 위험이 있습니다.
🔗 관련 취약점·체이닝
추정: 동일한 포맷 문자열 처리 오류는 CWE‑134(Improper Neutralization of Format String)와 밀접하게 연관됩니다. 또한 JSON 파싱 단계에서 입력 검증 부재는 CWE‑20(Input Validation)의 일반적인 사례이며, 이러한 취약점을 이용해 초기 침투 후 권한 상승이나 서비스 거부 공격을 체이닝할 수 있습니다.
🔎 탐지
- 로그 지표: 카메라 웹 서버 접근 로그(예:
/var/log/httpd/access.log)에POST /json혹은 유사 엔드포인트가 기록되며,User‑Agent필드와 무관하게 요청 본문에%[0-9]*\$?[snxX]형태의 포맷 지정자가 포함됩니다. - SIEM 탐지 규칙 예시
- Rule 1 – JSON 포맷 문자열 탐지
1source = "lorex_camera_web" 2| where request_method == "POST" and uri contains "/json" 3| where body matches "%[0-9]*\\$?[snxX]" 4| summarize cnt=count() by src_ip, bin(timestamp, 5m) 5| where cnt > 3- Rule 2 – 비정상적인 User‑Agent 없이 대량 POST
1source = "lorex_camera_web" 2| where request_method == "POST" and uri contains "/json" 3| where isnull(user_agent) or user_agent == "-" 4| summarize cnt=count() by src_ip, bin(timestamp, 1m) 5| where cnt > 10- 오탐 튜닝
- 정상적인 펌웨어 업데이트나 내부 관리 툴이 포맷 문자열을 포함할 경우 오탐이 발생할 수 있습니다. 이 경우
src_ip가 사내 관리 서버 IP 범위에 속하면 경보 레벨을 낮추거나 제외 리스트에 추가합니다.
- 정상적인 펌웨어 업데이트나 내부 관리 툴이 포맷 문자열을 포함할 경우 오탐이 발생할 수 있습니다. 이 경우
🛡️ 완화 방안
-
즉시(긴급 차단)
- 방화벽 ACL 또는 네트워크 스위치에서 카메라의 HTTP/HTTPS 포트(80, 443)를 외부망으로부터 차단하고, 신뢰된 내부 서브넷만 허용합니다.
구현 난이도: 낮음 – 기존 방화벽 정책에 단일 규칙 추가만 필요합니다.
운영 영향: 원격 관리가 불가능해지므로 현장 방문을 통한 설정 변경이 요구될 수 있습니다.
검증 방법: 차단 적용 후 외부 IP에서 해당 포트로 연결 시도했을 때connection refused응답 확인.
- 방화벽 ACL 또는 네트워크 스위치에서 카메라의 HTTP/HTTPS 포트(80, 443)를 외부망으로부터 차단하고, 신뢰된 내부 서브넷만 허용합니다.
-
단기(완화)
-
카메라 관리 인터페이스에 강제 인증(기본 제공되는 경우) 및 HTTPS 전용 사용을 활성화합니다.
구현 난이도: 중간 – 각 디바이스 UI에서 설정 변경 필요.
운영 영향: 기존 무인 원격 접근 방식이 차단되며, 인증 정보 관리가 추가됩니다.
검증 방법: 인증 없이/json엔드포인트에 접근 시401 Unauthorized응답 확인. -
로그 레벨을
debug이상으로 상승시켜 모든 JSON 요청 본문을 기록하고, 위 탐지 규칙을 실시간 모니터링합니다.
구현 난이도: 낮음 – 설정 파일 수정 후 서비스 재시작.
운영 영향: 로그 저장량 증가 (디스크 사용량 고려 필요).
검증 방법: 새로운 요청 발생 시 로그에body필드가 기록되는지 확인.
-
-
근본(해결)
- 공급업체에서 제공하는 펌웨어 업데이트가 배포될 때까지 현재 버전을 유지합니다. 업데이트가 발표되면 즉시 적용하고, 적용 전후에 포맷 문자열 검증이 추가된 것을 릴리즈 노트에서 확인하십시오.
구현 난이도: 중간 – 모든 카메라에 펌웨어를 배포해야 함.
운영 영향: 펌웨어 플래시 시 일시적인 서비스 중단(수분 내).
검증 방법: 업데이트 후 동일한 JSON 포맷 문자열 테스트 요청을 보내500 Internal Server Error혹은 정상적인 입력만 처리되는지 확인.
- 공급업체에서 제공하는 펌웨어 업데이트가 배포될 때까지 현재 버전을 유지합니다. 업데이트가 발표되면 즉시 적용하고, 적용 전후에 포맷 문자열 검증이 추가된 것을 릴리즈 노트에서 확인하십시오.
-
잔여 리스크
- 패치가 적용되지 않은 장비는 여전히 위험합니다. 따라서 위 즉시 차단 조치를 유지하고, 재배포된 펌웨어가 검증될 때까지 정기적인 로그 감시와 네트워크 분리를 지속해야 합니다.
우선순위 근거: 다중 소스 교차검증 결과(다중 소스에서 일관성이 확인됨)·EPSS 0.0026·CVSS 7.5·취약점 이용 난이도 hard·KEV 미등재·이번 주 내 scheduled 로 지정된 점을 반영해 즉시 차단을 최우선 과제로 제시했습니다.
⚖️ 위험도 / 우선순위
- 조치: scheduled (이번 주 내)
- 근거: CVSS=7.5 · non-KEV · EPSS=0.0026 · exploit=hard · in_scope=None