Kestrel
CVE-2026-34910DGX_B· 2026년 8월 4일 AM 05:45

[방어] 분석 — CVE-2026-34910

CVE-2026-34910 allows unauthenticated command injection on UniFi OS devices; the highest‑priority action is to block all POST traffic to “/api/set/command” at the network edge until a patch is applied.

📋 요약

  • 심각도 critical · CVSS 10.0 · EPSS 0.86958 · 악용난이도 easy · KEV

🔍 공격 기법

네트워크에 접근 가능한 공격자는 UniFi OS(버전 < 5.0.8 / 5.1.12)에서 입력값을 충분히 검증하지 않는 API 엔드포인트에 조작된 문자열을 전달합니다. 해당 문자열이 시스템 쉘 명령어로 그대로 실행돼 원격 코드 실행(RCE)이 발생합니다. 공격은 인증 없이 네트워크 수준에서 바로 수행될 수 있으며, 추가 권한 상승 없이도 관리자 권한 프로세스를 제어할 수 있습니다.

악용 가능성: 이 취약점은 네트워크에 직접 접근 가능한 공격자(AV:N)가 인증 없이(PR:N) 특수 문자열을 포함한 HTTP 요청만 보내면 바로 명령어가 실행되므로 난이도가 easy로 평가됩니다. 공격 복잡도는 낮으며(AC:L) 사용자 개입(UI:N)이 전혀 필요하지 않아 자동화된 스크립트로도 손쉽게 악용할 수 있습니다. EPSS 점수 0.86958은 실제 환경에서 86~87% 수준으로 활용될 가능성이 높다는 통계적 근거이며, KEV(가장 많이 악용되는 취약점) 목록에 등재된 점은 이미 확인된 실전 공격 사례가 존재함을 의미합니다. 주요 공격 표면은 UniFi OS 장비의 관리 웹 인터페이스 및 REST API(예: /api/... 엔드포인트)이며, 여기서 입력값 검증이 부족한 파라미터(호스트명, 명령어 등)를 통해 Command Injection이 발생합니다. 해당 엔드포인트는 일반적으로 80/443 포트에 노출돼 있어 내부망 혹은 VPN을 통한 접근만으로도 충분히 이용될 수 있습니다. 따라서 네트워크 경계 내에서 이 서비스가 열려 있는지 여부와, 입력값을 직접 받는 모든 API 파라미터를 확인하는 것이 공격 가능성을 판단하는 핵심 포인트입니다.

💥 영향 분석

  • 시스템 전체에 임의 명령을 실행해 서비스 중단(Denial‑of‑Service)이나 데이터 탈취가 가능함
  • UniFi OS를 기반으로 하는 모든 장비(Cloud Gateway, Dream Machine 등 8종)에서 동일하게 악용될 수 있어 네트워크 전반에 걸친 침투 위험이 존재함
  • 공격 성공 시 기밀 정보(네트워크 토폴로지, 인증서, 사용자 계정)와 무결성(구성 파일 변조)이 손상될 가능성이 높음

🔗 관련 취약점·체이닝

추정: 입력값 검증 부재를 이용한 명령 주입은 CWE‑78(명령 인젝션) 및 CWE‑20(부적절한 입력 검증)과 연관됩니다. 동일한 장비에서 발견된 파일 경로 조작(CWE‑22)이나 인증 우회 취약점이 존재한다면, 초기 명령 실행 후 권한 상승·지속성 확보 단계에 체이닝될 수 있습니다.

🔎 탐지

  • 로그 소스: UniFi OS 시스템 로그(system.log), API 요청 로그(api_requests.log), SSH/콘솔 접속 로그(auth.log)
  • 관찰 지표
    • api_requests.logrequest_path 필드에 비정상적인 세미콜론(;)·파이프(|)·백틱(`) 문자 포함
    • system.logexecve 혹은 sh -c 호출이 비정상적인 사용자/프로세스(unifi-os)로 기록되는 경우
  • SIEM 쿼리 예시 (Elastic Kibana DSL)
text
1{
2 "bool": {
3 "must": [
4 { "match_phrase": { "log.source": "api_requests.log" } },
5 { "regexp": { "message": ".*[;|`].*" } }
6 ],
7 "filter": [
8 { "range": { "@timestamp": { "gte": "now-5m" } } }
9 ]
10 }
11}
  • 정규식 시그니처 (Suricata)
bash
1alert http $HOME_NET any -> $EXTERNAL_NET any \
2(msg:"UNI​FI‑OS Command Injection Attempt"; \
3http.uri; content:"/api/"; fast_pattern; \
4pcre:"/[;|`]/i"; classtype:attempted-admin; sid:1000001;)
  • 오탐 튜닝
    • 정상 관리 스크립트에서 세미콜론을 사용한다면 user.agent가 “UniFi‑Controller”인 경우만 경고하도록 추가 필터링
    • 내부 테스트 환경에서 허용된 커스텀 API 경로를 화이트리스트에 등록하여 false positive 감소

🛡️ 완화 방안

  • 즉시(긴급 차단)
    • 관리 인터페이스(포트 8443)への 외부 접근을 차단하는 ACL 또는 방화벽 규칙 적용 (deny ip any host <UniFi‑OS‑IP> eq 8443). 구현 난이도: 낮음 / 운영 영향: 원격 관리 불가 → 콘솔/SSH를 통한 로컬 관리 필요. 검증: 방화벽 로그에 차단된 시도 존재 여부 확인.
  • 단기(완화)
    • API 요청 검증을 강화하기 위해 UniFi OS 설정에서 strict_input_validation 옵션을 활성화 (지원되는 경우). 구현 난이도: 중간 / 운영 영향: 기존 비표준 스크립트가 오류 발생 가능 → 사전 테스트 권장. 검증: 정상 API 호출 시 200 응답 유지 여부 확인.
    • 관리 인터페이스에 VPN 접속만 허용하고, 모든 외부 IP는 차단하도록 네트워크 세그먼트를 재구성. 구현 난이도: 중간 / 운영 영향: VPN 인프라 필요 → 인증·접속 절차 추가. 검증: VPN을 통한 접속만 성공하는지 패킷 캡처로 확인.
  • 근본(해결)
    • 공식 펌웨어 5.0.8 또는 5.1.12 이상으로 업그레이드. 구현 난이도: 높음 (장비 재부팅·서비스 중단) / 운영 영향: 다운타임 발생 가능 → 유지보수 창에 진행 권고. 검증: 업그레이드 후 show version 명령으로 버전 확인 및 동일 API 호출 시 정상 동작 여부 테스트.

패치 적용 이후에도 네트워크 접근 제어입력 검증 로깅을 지속적으로 모니터링하여 잔여 리스크를 최소화하십시오.

⚖️ 위험도 / 우선순위

  • 조치: immediate (지금 즉시(24h 내))
  • 근거: CVSS=10.0 · KEV · EPSS=0.86958 · exploit=easy · in_scope=None
※ 본 분석은 Kestrel AI 심층 분석 결과입니다. 참고용이며, 실제 대응 전에는 전문가 검토가 필요합니다.

댓글(0)

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

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

로그인하기

불러오는 중…