[방어] 분석 — CVE-2026-34909
CVE-2026-34909 is a critical unauthenticated path‑traversal in UniFi OS that allows remote file access, and the top immediate mitigation is to block external traffic to the UniFi management ports (e.g., 8443/443) at the perimeter firewall.
📋 요약
- 심각도 critical · CVSS 10.0 · EPSS 0.62767 · 악용난이도 easy · KEV
🔍 공격 기법
네트워크에 접근 가능한 공격자는 HTTP 요청 URI에 ../(또는 URL‑encoded %2e%2e%2f) 시퀀스를 삽입해 UniFi OS 웹 UI의 파일 다운로드 API 등을 우회한다. 인증이 필요 없으며(PR:N, UI:N) 성공하면 시스템 전체 경로를 탐색·읽을 수 있다. 획득한 /etc/shadow·SSH 키 등은 추가 계정 탈취와 관리자 권한 상승으로 이어진다.
💥 영향 분석
- 민감 파일(
/etc/passwd,/etc/shadow, SSH private key) 노출 → 시스템 로그인 우회 - UniFi OS 설정 파일(
system.cfg) 유출 → 전체 장비 제어권 획득 - 쓰기 권한이 허용된 경로에 악성 스크립트·웹쉘 배치 → 지속적 코드 실행 가능
🔗 관련 취약점·체이닝
추정: 동일 CWE‑22(경로 탐색) 유형의 다른 웹 서비스에서 보듯, 파일 열람으로 획득한 인증 정보를 활용해 로컬 권한 상승(LPE) 또는 임의 파일 쓰기(Arbitrary File Write) 공격을 연계할 수 있다.
🔎 탐지
-
로그 위치·필드
- UniFi OS 웹 UI 접근 로그 (
/var/log/unifi-os/access.log) –remote_ip,request_method,uri,status_code - OS 감사 로그(auditd) –
type=PATH,name=/...이벤트, 특히/etc/*,/root/*,/config/*경로
- UniFi OS 웹 UI 접근 로그 (
-
SIEM 탐지 규칙 예시 (pseudo‑SQL / SPL)
- URI에 “../” 포함 요청 감지
1source="unifi_os_access" 2| where uri like "%../%" or uri like "%%2e%2e%2f%" 3| stats count by remote_ip, uri 4| where count > 5- 민감 파일 접근 시도 (auditd)
1index=auditd sourcetype=auditd 2| regex name="/(etc|root|config)/.*" 3| stats dc(remote_user) as users by host, name 4| where users > 0- 연속적인 성공·실패 혼합
1source="unifi_os_access" 2| eval suspicious=if(uri like "%../%" and status_code in (200,403),1,0) 3| timechart span=1m sum(suspicious) as attempts 4| where attempts > 10- 오탐 튜닝
- 사내 관리 스크립트가
../를 사용해 정상적인 파일 다운로드를 하는 경우remote_ip가 내부 IP 대역(예: 10.0.0.0/8)이면 제외하도록 필터링한다. status_code=403만으로는 차단이 아닌 탐지로 오인될 수 있으므로, 실제 파일 내용이 반환된200응답을 주요 트리거로 설정한다.
- 사내 관리 스크립트가
🛡️ 완화 방안
-
즉시(긴급 차단)
- 외부에서 UniFi OS 관리 포트(기본 8443·443)로의 직접 접근을 방화벽 ACL에
deny any -> <UniFi_IP> dport {8443,443}규칙으로 차단한다.- 난이도: 낮음 – 기존 perimeter firewall 정책에 한 줄 추가만 필요.
- 운영 영향: 외부 VPN·전용망을 통한 내부 관리만 가능해지며, 원격 관리 UI는 일시 중단된다.
- 검증: 차단 적용 후
curl -k https://<UniFi_IP>:8443이 타임아웃 또는 “Connection refused” 응답을 반환하는지 확인한다.
- 외부에서 UniFi OS 관리 포트(기본 8443·443)로의 직접 접근을 방화벽 ACL에
-
단기(완화)
-
웹 서버 입력 검증 강화 – UniFi OS 내부 Nginx 설정에 아래와 같은 규칙을 삽입하고 서비스 재시작한다.
if ($request_uri ~ "\.\./|%2e%2e%2f") { return 403; }- 난이도: 중간 – 구성 파일 편집 및 Nginx reload 필요.
- 운영 영향: 기존 내부 자동화 스크립트가
../경로를 사용한다면 403 오류 발생, 사전 테스트 권장. - 검증: 탐지 규칙에서
status_code=403이 기록되는지 확인하고, 정상 UI 기능은 정상 응답(200)이어야 함.
-
민감 디렉터리 ACL 최소화 –
/etc,/root,/config등에 대한 읽기 권한을root:root 600으로 제한하고, UniFi OS 서비스 계정(unifi)에 해당 경로 접근 금지 정책을 적용한다.- 난이도: 중간 – OS 수준 ACL(예:
chmod,setfacl) 수정 필요. - 운영 영향: 서비스가 해당 파일을 읽어야 하는 경우 별도 권한 부여 절차가 필요함.
- 검증:
auditd로그에 “permission denied” 이벤트가 기록되고, 정상 동작 테스트에서 UI 기능에 오류가 없음을 확인한다.
- 난이도: 중간 – OS 수준 ACL(예:
-
-
근본(해결)
- 공식 펌웨어 5.0.8 이상 (또는 5.1.12 이상)으로 업그레이드한다.
- 난이도: 높음 – 전체 UniFi 장비 재부팅 및 호환성 테스트 필요, 유지보수 창에 적용 권장.
- 운영 영향: 서비스 중단 시간 발생(예정된 유지보수 기간 내 진행).
- 검증: 업그레이드 후
unifi-os version명령으로 버전 확인하고, 위 SIEM 탐지 규칙이 더 이상 트리거되지 않는지 재시험한다.
- 공식 펌웨어 5.0.8 이상 (또는 5.1.12 이상)으로 업그레이드한다.
잔여 리스크: 패치 전까지는 외부 차단·입력 검증·ACL 강화에 의존해야 하며, 내부 네트워크에서 악성 호스트가 존재할 경우 추가 마이크로세그멘테이션(예: VLAN 분리)과 서비스 계정 비밀번호 주기적 교체가 필요하다.
우선순위 근거: 다중 소스 교차검증 결과 CVSS 10.0·KEV 등재·EPSS 0.62767·exploit = easy 로 즉시 대응(immediate)으로 판단했으며, EPSS 수치는 실제 악용 가능성이 62 % 수준임을 의미한다(실측값). 따라서 위와 같은 계층적 완화‑탐지 방안을 순차적으로 적용한다.
⚖️ 위험도 / 우선순위
- 조치: immediate (지금 즉시(24h 내))
- 근거: CVSS=10.0 · KEV · EPSS=0.62767 · exploit=easy · in_scope=None