CVE-2026-35616 FortiClient EMS 사전 인증 API 우회와 권한 상승 대응

CVE-2026-35616 FortiClient EMS 사전 인증 API 우회 취약점의 영향, 탐지 지표, 패치와 VPN 관리 서버 보안 설계를 정리한다.

2026-08-15 · 최초 발행 2026-04-22

Fortinet FortiClient EMS(Endpoint Management Server)에서 사전 인증 API 우회를 통한 권한 상승 취약점 CVE-2026-35616(CVSS 9.1)이 발견됐고, 3월 말부터 실제 공격에 적극적으로 악용되고 있다. 영향 버전은 FortiClient EMS 7.4.5~7.4.6이며, 7.2 브랜치 이하는 영향을 받지 않는다. 인증되지 않은 공격자가 네트워크를 통해 임의 코드를 실행할 수 있는 크리티컬 취약점으로 분류된다. CISA는 4월 6일 이를 KEV 카탈로그에 즉시 올렸으며, 연방 기관에는 4월 9일까지 패치하라는 짧은 기한을 제시했다.

FortiClient EMS에 미치는 영향

FortiClient EMS는 Fortinet VPN 클라이언트인 FortiClient를 중앙에서 관리하는 서버다. 보안 정책 배포, 패치 관리, 컴플라이언스 점검, VPN 구성 기능을 맡고 FortiGate 방화벽 및 FortiOS 생태계와도 밀접하게 연동된다. 기업 환경에서는 수천 대의 엔드포인트를 관리하는 핵심 인프라가 될 수 있다.

항목 세부 내용
CVE ID CVE-2026-35616
CVSS 점수 9.1 (Critical)
취약점 유형 Improper Access Control (CWE-284)
영향 버전 FortiClient EMS 7.4.5 ~ 7.4.6
공격 요구 조건 인증 불필요, 네트워크 접근 가능
공격 결과 임의 코드/명령 실행, 완전한 권한 상승
발견자 Simo Kohonen (Defused Cyber), Nguyen Duc Anh
최초 야생 악용 2026년 3월 31일 (watchTowr 허니팟 관측)
CISA KEV 등재 2026년 4월 6일
연방 패치 기한 2026년 4월 9일

CVSS 9.1은 Critical 수준이다. 사전 인증(Pre-Authentication) 상태에서 네트워크를 통한 원격 공격이 가능하다는 조건이 결합돼 공격자에게 유리하다.

접근 제어 결함이 API 경계를 넘는 방식

CVE-2026-35616은 FortiClient EMS REST API의 인증 로직 결함에서 비롯된다. CWE-284(Improper Access Control)로 분류된 이유도 API 엔드포인트의 접근 제어가 올바르게 구현되지 않았기 때문이다.

인증 우회는 API 게이트웨이가 특정 엔드포인트를 공개(public) 상태로 잘못 분류하거나, 인증을 검사하는 미들웨어가 일부 경로에서 바이패스되는 경우에 발생할 수 있다. 이때 공격자는 인증 검사가 적용되지 않는 API 경로를 찾아 권한이 필요한 기능에 접근한다.

헤더를 기준으로 인증 상태를 판단하는 일부 API 구현도 위험 지점이다. 조작된 헤더(예: X-Forwarded-For, X-Original-URL, 커스텀 인증 헤더)를 통해 인증된 요청처럼 위장하는 공격이 가능하다. Django 기반 API 레이어가 Apache mod_ssl이 WSGI 환경 변수로 주입하는 특정 HTTP 헤더를 신뢰하고, 외부 요청이 Django 레이어에 직접 도달할 수 있다면 내부 프로세스 통신을 전제로 한 신뢰 관계가 무너진다. 인증서 기반 인증 로직이 Subject와 Issuer 문자열만 단순 비교하고 암호화 서명을 실질적으로 검증하지 않는 경우에도 자체 서명한 위조 인증서가 EMS API 접근 권한을 획득하는 데 사용될 수 있다.

시스템 명령 실행권한 있는 기능FortiClient EMS API Gateway공격자시스템 명령 실행권한 있는 기능FortiClient EMS API Gateway공격자인증 검사 우회 (CWE-284)조작된 API 요청 (인증 토큰 없음)인증 없이 권한 있는 기능 접근 허용임의 코드/시스템 명령 실행권한 상승 완료 (시스템 수준 접근)

EMS는 수천 개의 엔드포인트를 관리한다. 서버가 탈취되면 관리 대상 전체에 악성 설정을 배포하거나 VPN 프로파일을 수정하고, 에이전트 업데이트를 이용해 악성코드를 배포할 수 있다. VPN 게이트웨이, 방화벽, SIEM 등 보안 인프라 전반의 설정 변경 권한까지 보유한 경우도 많아 단일 서버 침해가 전체 기업 네트워크 침해와 횡적 이동의 발판이 된다. 합법적인 관리 채널을 이용하는 공격은 탐지를 피하기도 쉽다.

VPN 관리 API에 적용할 보안 경계

FortiClient EMS 같은 VPN 관리 서버는 기업 네트워크의 핵심 통제점이다. 각 엔드포인트가 자신의 관리에 필요한 최소한의 권한만 갖도록 API를 설계해야 한다.

  • 에이전트는 자신의 정책만 조회 가능
  • 관리자 기능은 별도의 강력한 인증 필요
  • API 키는 기능별로 분리하여 발급

인증 계층 하나에 의존하는 구성도 피해야 한다. EMS 관리 포트는 방화벽으로 접근을 제한하고, 인증 레이어에는 MFA와 API 키 + 클라이언트 인증서를 적용한다. 인가 레이어는 RBAC(Role-Based Access Control)로 분리하며, 감사 레이어에서는 모든 API 호출을 기록하고 이상 행동을 탐지한다.

Zero Trust 아키텍처에서는 내부 네트워크에서 들어온 요청도 신뢰하지 않는다. VPN 클라이언트 관리 API 역시 모든 요청마다 유효한 인증을 요구하는 방식으로 "Never Trust, Always Verify" 원칙을 적용해야 한다.

야생 악용에서 관측된 침해 연쇄

watchTowr의 허니팟 분석에 따르면 CVE-2026-35616의 최초 악용 시도는 공식 공개 이전인 2026년 3월 31일에 포착됐다. 초기 행태는 특정 표적을 선별하는 “low and slow”(저속·은밀) 방식이었고, 공개 뒤에는 기회주의적 대규모 스캔으로 빠르게 전환됐다.

단계 1: 스캔 — Shodan/공개 스캐너로 인터넷 노출된 EMS 포트 탐지
단계 2: 지문 수집 — HTTP 헤더, 에러 메시지로 EMS 버전 확인
단계 3: API 우회 — 취약한 엔드포인트로 조작된 요청 전송
단계 4: 권한 상승 — 시스템 수준 명령 실행 권한 획득
단계 5: 지속성 확보 — 백도어 설치, VPN 정책 수정
단계 6: 횡적 이동 — EMS 관리 엔드포인트들로 악성 설정 배포

Defused Cyber는 이 취약점의 첫 악용 시도를 제로데이 상태(패치 공개 전)에서 관측했으며, Fortinet이 패치를 개발하는 동안에도 공격이 지속됐다.

KEV 등재와 운영 우선순위

CISA의 KEV(Known Exploited Vulnerabilities) 카탈로그는 BOD(Binding Operational Directive) 22-01에 근거한 연방 취약점 관리 체계의 핵심 도구다. KEV 등재에는 공식 CVE 식별자, 벤더 또는 CISA가 제시한 구체적인 패치·완화 지침, 보안 업체·연구자·정부 파트너가 제공한 실 악용 증거가 모두 필요하다.

새 항목이 등록되면 FCEB(Federal Civilian Executive Branch) 기관은 지정 기한 안에 패치를 적용하거나 완화 조치를 수행해야 하며, 영향 제품을 네트워크에서 분리하는 방법도 선택할 수 있다. BOD 22-01은 단순 권고가 아니라 법적 구속력을 가진 지침이며, 미이행은 기관의 사이버보안 역량 평가에 직접 영향을 준다.

CVE-2026-35616은 2026년 4월 6일 KEV에 등재됐고, 연방 패치 기한은 2026년 4월 9일이다. 일반적인 KEV 패치 기한이 2~3주인 점을 고려하면, 3일이라는 기한은 CISA가 이를 극히 심각한 위협으로 판단했음을 뜻한다. KEV 카탈로그는 단순 취약점 목록이 아니라 실제 악용 증거와 기한을 통해 패치 우선순위와 운영 의사결정을 재편하는 위협 인텔리전스 도구가 된다. Fortinet은 즉시 핫픽스를 배포했으며, 완전한 수정은 7.4.7 버전에서 제공될 예정이다.

패치 전에도 닫아야 할 노출 지점

완전한 버전 업그레이드인 7.4.7 이전 단계이거나 즉각적인 패치가 어려운 환경에서는 계층적 완화가 필요하다. 우선 Fortinet이 EMS 7.4.5 및 7.4.6 사용자를 위해 배포한 핫픽스를 적용한다.

관리 인터페이스와 API 엔드포인트를 인터넷에 직접 노출하지 않는 조치도 필요하다. WAF(Web Application Firewall) 또는 리버스 프록시를 앞단에 두고 외부 요청이 Django 레이어에 직접 도달하지 못하도록 격리한다. 방화벽 ACL로 EMS API 통신을 신뢰된 내부 IP 범위와 VPN 연결 세그먼트로 제한하고, 인터넷 라우팅 가능한 IP의 직접 EMS 접근을 전면 차단한다. 이는 헤더 조작 요청이라는 공격 벡터를 차단하는 부분 패치의 핵심이다.

로그·정책 변경에서 찾아야 할 침해 징후

EMS 서버의 침해 여부를 확인할 때는 인증 없는 고권한 API 호출을 우선 살펴볼 수 있다. 야간이나 주말처럼 비정상적인 시간대의 정책 변경, 알 수 없는 IP에서 들어온 API 요청, 예기치 않게 바뀐 VPN 클라이언트 설정도 함께 확인할 지표다. EMS API 로그에서는 비정상 헤더 패턴, 미등록 에이전트 ID, 인증서 Subject/Issuer 불일치도 모니터링한다. SIEM 연동 시에는 제로데이 악용 초기 단계의 “low and slow” 패턴을 탐지할 수 있도록 베이스라인을 설정한다.

취약한 버전(7.4.5-7.4.6)을 사용 중이라면 핫픽스를 적용하거나 7.4.7로 업그레이드하는 조치가 우선이다. 이어 EMS 관리 포트는 방화벽으로 내부 네트워크만 허용하고, EMS 앞단에는 WAF(Web Application Firewall)를 배치한다. 장기적으로는 API 접근에 mTLS(Mutual TLS)를 구현한다.

Fortinet 환경에서는 FortiGate, FortiAnalyzer, FortiManager와의 통합 보안 패브릭(Security Fabric)을 활용해 EMS 관련 이상 행동을 중앙에서 탐지하고 자동으로 격리하는 체계를 구축할 수 있다.

CVE-2026-35616은 최근 수 주 사이 FortiClient EMS에서 실제 악용된 두 번째 치명적 취약점이다. 엔터프라이즈 엔드포인트 관리 서버는 조직의 왕관의 보석인 동시에 취약한 단일 장애점이 될 수 있다. CVE-2026-35616 대응에서는 핫픽스 적용, API 인터넷 격리, 7.4.7 정식 패치 전환 계획을 함께 다뤄야 한다. 기업 네트워크의 통제권을 쥔 VPN 관리 서버일수록 API 보안 설계와 최소 권한 원칙, 심층 방어 체계가 침해 반경을 좌우한다.

Sources

FortiClient EMSCVE-2026-35616VPN 보안API 보안권한 상승취약점 대응