Fortinet FortiClientEMS에서 발생하는 심각한 SQL 인젝션 취약점: 분석 및 완화 방안

마지막 업데이트 : 4 4월 2026
  • FortiClientEMS 7.4.4의 심각한 취약점 CVE-2026-21643은 인증 없이 SQL 인젝션 및 원격 코드 실행을 허용합니다.
  • 이 취약점은 미들웨어에서 HTTP 사이트 헤더를 안전하지 않게 처리하는 것과 관련이 있으며, 공개 엔드포인트 /api/v1/init_consts를 통해 악용될 수 있습니다.
  • 이러한 공격은 관리 데이터베이스의 완전한 손상, 자격 증명 도용, 모든 엔드포인트에 배포된 정책 변경으로 이어질 수 있습니다.
  • 문제 해결을 위해서는 FortiClientEMS 7.4.5 이상 버전으로 업그레이드하고, 즉시 패치가 불가능한 경우 멀티테넌트 모드를 비활성화하고, 관리 콘솔에 대한 접근을 제한해야 합니다.

Fortinet에서 심각한 SQL 인젝션 취약점 발견

엔드포인트 관리 플랫폼의 보안은 많은 기업에게 중요한 문제로 대두되었으며, 최근 포티넷(Fortinet)의 포티클라이언트(FortiClient) 엔드포인트 관리 서버(EMS) 솔루션이 그 대표적인 사례입니다. 최근 특정 버전의 제품에서 심각한 SQL 인젝션 취약점이 발견되어 사이버 보안 업계에 큰 파장을 일으켰습니다.

이 글에서는 Fortinet의 심각한 SQL 인젝션 취약점 (CVE-2026-21643 )에 대해 자세히 살펴보겠습니다. 이 취약점이 어떻게 작동하는지, 기업에 미치는 실제 영향은 무엇인지, 실제 악용 사례는 무엇인지, 그리고 무엇보다 FortiClientEMS 또는 유사 제품 기반 인프라를 관리하는 경우 시급하고 중장기적으로 어떤 조치를 취해야 하는지 알아보겠습니다.

FortiClientEMS의 CVE-2026-21643 취약점 관련 맥락

취약점 CVE-2026-21643은 여러 출처에 따라 CVSS 점수가 9.1에서 9.8 사이로 평가되어 심각한 수준으로 분류되었으며 , 사실상 최고 수준의 심각도에 해당합니다. 이 결함은 기업에서 사용자 기기에 FortiClient 에이전트를 배포하고 관리하는 데 사용하는 플랫폼인 FortiClient Endpoint Management Server(EMS)에 존재합니다.

구체적으로, 이 문제는 멀티테넌트 모드("사이트" 기능)가 활성화된 FortiClientEMS 버전 7.4.4(7.4 브랜치)에 영향을 미칩니다 . 버전 8.0 및 7.2와 FortiEMS 클라우드 인스턴스는 이 버그의 영향을 받지 않으므로 Fortinet은 모든 완화 권장 사항을 온프레미스 환경에서 버전 7.4.4를 사용하는 환경에 집중했습니다.

이 SQL 인젝션은 SQL 문의 특수 요소가 제대로 처리되지 않아 발생하는 취약점으로 , CWE-89로 분류됩니다. 실제로 이 취약점을 이용하면 인증되지 않은 원격 공격자가 특수하게 조작된 HTTP 요청을 전송하여 서버가 임의의 SQL 명령을 실행하도록 할 수 있으며, 결과적으로 데이터베이스 사용자 권한으로 원격 코드 실행(RCE)이 발생할 수 있습니다.

포티넷의 보안 권고에 따르면 해당 취약점은 FortiClientEMS GUI 구성 요소 , 특히 관리자가 엔드포인트를 관리하고 모니터링하는 데 사용하는 웹 인터페이스에 있습니다. 즉, 인터넷에 노출된 인터페이스를 가진 모든 인스턴스는 공격자의 주요 표적이 될 수 있습니다.

Fortinet에서 심각한 SQL 인젝션 공격이 발생하는 원인

문제의 근본 원인은 FortiClientEMS 7.4.4 버전의 주요 미들웨어 리팩토링 과 관련이 있습니다 . 이 코드 수정 과정에서 개발자들은 PostgreSQL 데이터베이스 연결 및 테넌트 라우팅 처리 방식을 변경했는데, 이 과정에서 연결 파일에 의도치 않은 버그가 발생했습니다.

이 새로운 논리에서는 서버가 직접 전달합니다. HTTP 헤더 Site 상담을 위해 search_path PostgreSQL 제작목표는 이 헤더를 기반으로 각 테넌트에 해당하는 스키마를 선택하는 것이었지만, 가장 큰 문제는 미들웨어가 해당 값에 대한 적절한 유효성 검사나 정제 작업을 수행하지 않는다는 점입니다.

결과적으로 공격자는 의도된 문자열 형식을 깨뜨리고 악성 페이로드를 SQL 문에 삽입하여 Fortinet 가상 머신 내에서 서비스 사용자가 구성한 높은 권한으로 데이터베이스가 실행할 임의의 명령을 주입할 수 있습니다.

  Google Chrome: 최고의 브라우저에 대해 알아야 할 모든 것

이 취약한 미들웨어는 인증 검사 전에 실행되므로 위험이 더욱 커집니다 . 다시 말해, 로그인이나 자격 증명이 필요하지 않습니다. 단순히 사이트 헤더를 수정하여 조작된 HTTPS 요청을 보내는 것만으로도 취약점을 악용하려는 시도가 가능합니다.

이 패턴은 네트워크를 통해 공격이 발생하고, 복잡성이 낮으며, 사전 권한이나 사용자 상호 작용이 필요하지 않고, 영향을 받는 시스템의 기밀성, 무결성 및 가용성을 완전히 손상시키는 CVSS 3.1 시나리오( AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A: H)에 완벽하게 부합합니다.

공격 경로: 엔드포인트 /api/v1/init_consts 및 사이트 헤더

비숍 폭스 팀과 같은 보안 연구원들은 가장 실질적인 공격 경로는 엔드포인트에서 발견된다고 설명했습니다. 공개적으로 접근 가능 /api/v1/init_consts인터페이스 초기화 중에 사용되는 FortiClientEMS API 경로입니다.

공격자는 먼저 이 엔드포인트를 사용하여 다음을 수행할 수 있습니다. 멀티테넌트 모드가 활성화되어 있는지 확인하십시오.공격자들은 사이트 기능이 활성화되어 있음을 발견하면 HTTP 헤더를 통해 SQL 페이로드를 삽입합니다. Site값이 정리되지 않고 문장으로 전달된다는 사실을 이용하여 search_path.

이 엔드포인트에는 몇 가지 설계 결함이 있습니다. 첫째, 속도 제한 메커니즘과 무차별 대입 공격 방어 기능이 부족합니다 . 둘째, PostgreSQL에서 생성된 오류 메시지를 응답 본문에 직접 반환합니다. 이로 인해 공격자가 공격하기가 훨씬 쉬워집니다.

이러한 오류를 명확하게 수신함으로써 악의적인 공격자는 훨씬 느린 시간 기반 인젝션 ​​공격에 의존할 필요 없이 단일 요청으로 오류 기반 추출 기법을 수행할 수 있습니다 . 이를 통해 민감한 테이블, 열 및 데이터를 매우 빠르게 열거할 수 있습니다.

공격이 성공하면 공격자는 엔드포인트 관리 데이터베이스를 완전히 장악하는 시나리오를 달성하게 됩니다 . 데이터베이스 사용자는 PostgreSQL 슈퍼유저 권한으로 실행되므로 정보를 유출할 뿐만 아니라 기본 운영 체제에서 원격 코드 실행 권한까지 확보할 수 있습니다.

조직 및 관리 대상 엔드포인트에 실질적인 영향

이 취약점의 영향은 단순한 데이터 유출을 훨씬 넘어섭니다. FortiClientEMS 데이터베이스에서 임의의 SQL 쿼리를 실행할 수 있으므로 공격자는 관리자 암호, 디지털 인증서, 플랫폼에 연결된 모든 장치의 전체 목록을 탈취 할 수 있습니다.

이러한 수준의 접근 권한을 확보하면 공격자는 보안 정책을 수정하고 악성 구성을 관리 대상 엔드포인트 전체에 배포할 수 있습니다. 이는 조직 자체의 보안 에이전트가 내부 네트워크에 대한 공격 벡터가 되는 복잡한 시나리오로 이어질 수 있습니다.

또한 관리 데이터베이스가 손상되면 저장된 데이터의 기밀성 (예: 사용자, 장비, 정책 및 인증서 정보), 무결성(규칙, 템플릿 및 할당 변경) 및 가용성(데이터 삭제 또는 관리 서버 파괴 가능성)에도 영향을 미칩니다.

이러한 위협은 사이버 범죄자들이 정보 집중 및 대규모 엔드포인트 제어 기능을 제공하는 대상으로 매우 선호하는 엣지 디바이스 및 관리 시스템에 대한 공격이 점점 더 흔해지고 있는 추세 와 일맥상통합니다.

위와 같은 모든 이유로 Fortinet은 이 취약점을 심각한 수준으로 분류했으며, 보안 기관 및 기업은 FortiClientEMS 7.4.4 인스턴스를 위험도가 입증될 때까지 최대 위험 자산으로 취급할 것을 권장합니다.

활발한 이용 및 노출 영역

초기 보고서에서는 아직 실제 악용 사례가 발견되지 않았다고 했지만, Defused사의 연구원들은 해당 취약점이 공개되기 불과 ​​4일 전에 CVE-2026-21643을 악용한 실제 공격 사례를 확인했습니다.

  스마트 플러그를 로컬에서 관리하는 방법: Tasmota vs. 로컬 Tuya

Shadowserver와 같은 기관에서 수집한 데이터에 따르면 모니터링 당시 약 2.000개의 FortiClientEMS 인스턴스가 인터넷에 직접 노출된 것으로 나타났습니다 . 취약한 서버가 가장 많은 국가는 미국으로 약 756개였으며, 그 다음은 유럽으로 680개 이상이었습니다. Shodan은 또한 1.000개 이상의 공개적으로 접근 가능한 FortiClientEMS 웹 인터페이스를 탐지했는데, 이 중 상당수는 패치가 적용되지 않은 것으로 추정됩니다.

NIST 공식 레지스트리 항목에 따르면 CVE-2026-21643은 매우 심각한 취약점으로, AV:N/AC:L/PR:N/UI:N 벡터를 통해 C, I, A 영역에 높은 영향을 미치는 것으로 나타났습니다 . 이는 웹 인터페이스가 개방된 FortiClientEMS 7.4.4 서버가 공격자의 자격 증명이나 사용자 클릭 유도 없이도 완전히 손상될 수 있음을 의미합니다.

Defused는 3월 28일에 이러한 공격 사례를 보고하면서, 그럼에도 불구하고 해당 취약점이 CISA의 KEV(알려진 악용 취약점) 목록이나 기타 활발히 악용되고 있는 결함의 공개 목록에 아직 등재되지 않았다고 지적했습니다. 이는 일반적으로 초기 공격 시기에 발생하는 현상입니다.

반면 포티넷은 이미 2월에 버전 7.4.5와 함께 수정 패치를 배포 했는데 , 이는 사이버 보안에서 반복적으로 나타나는 패턴을 명확히 보여줍니다. 즉, 수정 패치가 제공되는 시점과 실제 운영 환경에 배포되는 시점 사이에 상당한 시간적 간격이 존재하며, 이 기간 동안 공격자들은 아직 업데이트되지 않은 시스템을 침해하는 데 악용한다는 것입니다.

침해 지표 및 공격 징후

FortiClientEMS를 관리하는 관리자에게는 잠재적인 공격 시도가 남긴 단서를 파악하는 것이 매우 중요합니다. 주요 침해 지표(IoC)는 다음과 같습니다.

첫째, 그들은 다음을 강조합니다. 응답 시간이 비정상적으로 길어 5초에서 20초 이상까지 다양함엔드포인트에서 /api/v1/auth/signin o /api/v1/init_consts이는 Apache 또는 앞에 있는 다른 웹 서버의 액세스 로그에서 확인할 수 있습니다.

이는 또한 경고 신호이기도 합니다. 동일한 IP 주소에서 HTTP 500 응답이 반복적으로 발생합니다. 엔드포인트에 대해 /api/v1/init_consts이러한 패턴은 공격자가 오류를 발생시키지 않고 작동하는 SQL 인젝션 페이로드를 찾을 때까지 시행착오를 통해 페이로드를 미세 조정하고 있음을 나타낼 수 있습니다.

또한 PostgreSQL 오류 로그를 확인해 보는 것도 좋습니다. 상담 search_path 작은따옴표, 세미콜론 또는 SQL 키워드를 사용하여 으로 SELECT, INSERT o UPDATE 예상치 못한 컨텍스트에서 발생했습니다. 이러한 유형의 추적은 일반적으로 사이트 헤더를 조작하려는 시도를 직접적으로 나타냅니다.

대응 조치로, 적절한 업데이트 없이 인터넷에 노출된 FortiClientEMS 7.4.4 서버는 잠재적으로 손상된 것으로 간주해야 합니다 . 이를 위해서는 해당 서버를 네트워크에서 격리하고, 상세한 포렌식 분석(데이터베이스, 운영 체제 및 로그)을 수행하며, 침입 증거가 발견될 경우 환경을 통제된 방식으로 복구하는 계획을 수립해야 합니다.

포티넷의 즉각적인 완화 조치 및 공식 해결책

가장 중요한 완화 조치는 명확합니다. FortiClientEMS 7.4.4를 가능한 한 빨리 7.4.5 이상 버전으로 업데이트하십시오 . Fortinet은 쿼리에서 문자열 보간을 매개변수화된 식별자의 적절한 처리로 대체하고 사이트 헤더의 입력을 안전하게 이스케이프 처리하여 취약점을 수정했습니다.

버전 8.0 및 7.2, 그리고 FortiEMS Cloud는 이 특정 취약점의 영향을 받지 않으므로 추가 조치가 필요하지 않습니다 . 하지만 관리 콘솔의 공격 표면을 최소화해야 하므로 인터넷 노출 및 액세스 구성을 검토하는 것이 좋습니다.

운영상의 이유로 패치를 즉시 적용할 수 없는 팀의 경우, 일부 연구원들은 임시 완화 조치로 멀티테넌트 "사이트" 기능을 비활성화할 것을 권장합니다 . 이 조치는 사이트 헤더와 연결된 취약한 코드 경로의 실행을 차단하여 악용 가능한 옵션을 크게 줄입니다.

  클래식 소프트웨어 개발 방법론: 전통적인 접근 방식

마찬가지로, EMS 관리 인터페이스에 대한 웹 접근은 신뢰할 수 있는 내부 네트워크로만 제한하는 것이 필수적입니다 . 이상적으로는 콘솔을 VPN 또는 제로 트러스트 접근 메커니즘 뒤에 배치하고, 매우 예외적이고 적절하게 보안된 경우를 제외하고는 인터넷에 직접 노출시키지 않아야 합니다.

또한 FortiClientEMS 앞에 있는 방화벽 규칙 및 WAF를 검토하고 강화하여 HTTP 헤더, 특히 사이트 헤더에서 일반적인 SQL 인젝션 패턴을 차단하는 필터를 적용하고 비정상적인 API 요청을 면밀히 모니터링하는 것이 좋습니다 .

패치 그 이상의 우수한 보안 관행

단순히 패치를 적용하고 특정 완화 조치를 취하는 것을 넘어, 이번 사건은 취약점 관리가 공급업체의 권고에 대한 일회성 대응이 아니라 지속적인 프로세스여야 한다는 점을 분명히 보여줍니다 . 엔드포인트 관리 플랫폼과 네트워크 보안 솔루션에 의존하는 조직은 여러 측면에서 전략을 강화해야 합니다.

한편으로는, 최신 자산 및 버전 목록을 보유하는 것이 필수적입니다 . 그래야 중요한 CVE가 게시될 때 몇 분 안에 어떤 시스템이 취약한지 파악하고 노출 수준과 중요도에 따라 업데이트 우선순위를 정할 수 있습니다.

반면에, 제품 자체의 견고성뿐만 아니라 배포 방식(네트워크 분할, 관리 평면 분리, 접근 제한, 중앙 집중식 로그 모니터링 및 이상 행동 탐지)까지 검증하는 주기적인 침투 테스트 및 아키텍처 검토를 선택하는 것이 좋습니다.

개발 관점에서 볼 때, 이 사례는 미들웨어 또는 핵심 구성 요소에 대한 대대적인 리팩토링을 수행할 때마다 안전한 개발 관행과 회귀 테스트를 적용하는 것이 얼마나 중요한지를 다시 한번 보여줍니다 . 성능이나 확장성 향상을 위해 입력값 검증과 같은 기본적인 메커니즘을 후퇴시켜서는 안 됩니다.

사이버 보안 및 보안 개발 전문 기업은 코드 감사, 침투 테스트 및 컨설팅 서비스를 제공하여 이러한 취약점이 실제 운영 환경에 배포되기 전에 탐지할 수 있도록 지원합니다. 온프레미스 인프라, 클라우드 및 엣지 디바이스가 혼합된 환경에서는 외부 전문가의 도움을 받는 것이 매우 중요합니다.

마지막으로, 거버넌스 및 비즈니스 차원에서 취약점 현황, 관리 인터페이스 노출 정도, 그리고 심각한 장애 발생 시 조직 프로세스에 미칠 수 있는 잠재적 영향을 시각화할 수 있는 대시보드와 비즈니스 인텔리전스를 활용하는 것이 매우 유용합니다 . 이러한 접근 방식을 통해 투자 우선순위를 정하고, 당장은 비용이 많이 드는 것처럼 보일 수 있지만 중장기적으로 많은 문제를 예방할 수 있는 예방 조치를 정당화할 수 있습니다.

심각한 설계 결함, 광범위한 공격 표면, 그리고 패치 적용 지연이라는 여러 요인이 복합적으로 작용한 CVE-2026-21643은 관리 콘솔 보안을 절대 과소평가해서는 안 되는 이유를 보여주는 전형적인 사례입니다. FortiClientEMS 또는 유사한 솔루션을 사용하는 모든 조직은 이번 사건을 계기로 보안 태세를 재검토하고, 업데이트 주기를 단축하며, 또 다른 제로데이 취약점이나 SQL 인젝션 공격으로 인해 불이익을 당하기 전에 관리 플랫폼에 대한 방어 체계를 강화해야 합니다 .

SQL-8 주입이란 무엇인가요?
관련 기사 :
SQL 주입: SQL 주입이란 무엇이고, 어떻게 작동하는지, 데이터를 보호하기 위한 예시와 팁