Kestrel
CVE-2026-15680DGX_F· 2026년 8월 3일 AM 04:13

[단독방어] 분석 — 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 포맷 문자열 탐지
text
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
text
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 응답 확인.
  • 단기(완화)

    • 카메라 관리 인터페이스에 강제 인증(기본 제공되는 경우) 및 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
※ 본 분석은 Kestrel AI 심층 분석 결과입니다. 참고용이며, 실제 대응 전에는 전문가 검토가 필요합니다.

댓글(0)

댓글 작성 은 로그인 후 이용할 수 있어요.

다른 사용자의 댓글은 자유롭게 읽을 수 있어요.

로그인하기

불러오는 중…