GeoServer 원격 코드 실행(RCE) 취약점 긴급 보안 권고 (CVE-2024-36401)
실무자 핵심 요약 (Executive Summary)
SECOPS ASSESSMENTGeoServer 2.22.6, 2.23.6, 2.24.4, 2.25.2 미만의 모든 기본 설치 환경
인증되지 않은 외부 공격자가 WFS, WMS, WPS 등 다양한 OGC 요청 매개변수를 통해 대상 서버에서 임의의 시스템 명령을 실행할 수 있습니다
즉시 공식 패치 버전(2.22.6, 2.23.6, 2.24.4, 2.25.2 이상)으로 업그레이드하거나, 임시 완화 조치로 'gt-complex' JAR 파일을 제거하십시오
영향받는 제품 및 버전 범위
권장 패치 및 임시 완화(Workaround) 가이드
패치 및 우회 명령어1. 공식 보안 패치 및 버전 업그레이드 명령어
가장 확실한 해결책은 취약점이 해결된 최신 안정 버전으로 GeoServer를 업그레이드하는 것입니다.
Docker 환경을 사용하는 경우 아래 명령어를 통해 최신 이미지로 업데이트하십시오:
# Docker Compose 환경 업그레이드 예시
docker-compose pull geoserver
docker-compose up -d2. 패치 전 임시 완화(Workaround) 및 접근 제어 설정
즉각적인 패치가 어려운 경우, 취약한 코드가 포함된 gt-complex 라이브러리 파일을 제거하여 취약점 실행 경로를 차단할 수 있습니다. 단, 이 조치는 복잡한 피처 스키마 기능을 사용하는 일부 서비스에 영향을 줄 수 있으므로 사전 테스트가 필요합니다.
# GeoServer 웹 애플리케이션 라이브러리 경로로 이동 (경로는 설치 환경에 따라 다를 수 있음)
cd /usr/share/geoserver/webapps/geoserver/WEB-INF/lib/
# 취약한 gt-complex-*.jar 파일 확인 및 안전한 경로로 백업 이동 후 제거
mkdir -p /tmp/geoserver-backup
mv gt-complex-*.jar /tmp/geoserver-backup/
# GeoServer 서비스 재시작
systemctl restart geoserver3. 침해 흔적(IoC) 및 로그·버전 점검 스크립트
GeoServer의 액세스 로그에서 악성 XPath 표현식 주입 흔적을 탐지하고 현재 구동 중인 버전을 점검하는 스크립트입니다.
# GeoServer 요청 로그에서 jxpath, java.lang.Runtime, ProcessBuilder 등 의심스러운 키워드 검색
grep -Ei 'jxpath|runtime|processbuilder|exec|class' /var/log/geoserver/*.log
# 현재 설치된 GeoTools 및 GeoServer 관련 라이브러리 버전 확인
find / -name 'gt-api-*.jar' -o -name 'gt-complex-*.jar' 2>/dev/null코드 수정 전에도 가상 패치(Virtual Patching)로 웹 공격을 즉시 차단하세요
서버 재시작이나 긴급 패치가 어려운 운영 환경이라면 클라우드 WAF 관리형 룰셋을 활성화하여 SQLi, RCE, XSS 익스플로잇 페이로드를 엣지에서 1분 만에 차단할 수 있습니다.
취약점 발생 원리 및 공격 메커니즘
1. 취약점 개요 및 발생 원인 (Root Cause)
본 취약점(CVE-2024-36401)은 오픈소스 지리공간 데이터 서버인 GeoServer가 내부적으로 사용하는 GeoTools 라이브러리의 API 호출 설계 결함으로 인해 발생합니다. GeoTools는 피처 유형(Feature Type)의 속성 및 프로퍼티 이름을 평가하는 과정에서, 입력값을 검증하지 않고 commons-jxpath 라이브러리로 안전하지 않게 전달합니다. 이 과정에서 XPath 표현식이 안전하지 않게 평가(Evaluation)되어 임의의 Java 코드가 실행될 수 있는 취약점(CWE-95, CWE-94)이 발생합니다. 본래 이 XPath 평가는 복잡한 피처 유형(Application Schema 데이터 스토어)에만 적용되어야 하지만, 설계 오류로 인해 단순 피처 유형을 포함한 모든 GeoServer 인스턴스에 기본적으로 적용되어 취약점 영향도가 극대화되었습니다.
2. 공격 메커니즘 및 익스플로잇 시나리오
인증되지 않은 원격의 공격자는 GeoServer가 제공하는 다양한 OGC(Open Geospatial Consortium) 표준 서비스 인터페이스를 공격 벡터로 활용할 수 있습니다. 구체적으로 WFS GetFeature, WFS GetPropertyValue, WMS GetMap, WMS GetFeatureInfo, WMS GetLegendGraphic, WPS Execute 요청 시, 조작된 XPath 표현식을 프로퍼티 이름 매개변수에 주입하여 전송합니다. GeoServer는 이 요청을 수신한 후 내부 GeoTools API를 거쳐 commons-jxpath 엔진으로 전달하며, 엔진은 주입된 악성 XPath 식을 해석하는 과정에서 공격자가 의도한 Java 클래스 로딩 및 시스템 명령 실행(RCE)을 수행하게 됩니다.
3. 비즈니스 및 인프라 파급 영향
본 취약점은 CVSS 3.1 기준 최고 위험도인 9.8(Critical)을 기록하였으며, 실제 야생에서 악용되고 있는 CISA KEV(Known Exploited Vulnerabilities) 등재 취약점입니다. EPSS(Exploit Prediction Scoring System) 점수 또한 0.9981(99.81%)로 극도로 높은 공격 발생률을 나타내고 있습니다. 공격자가 이 취약점을 성공적으로 악용할 경우, GeoServer가 실행 중인 호스트 OS의 권한을 완전히 탈취하여 내부망 침투, 지리정보 데이터베이스(GIS) 무단 유출 및 변조, 랜섬웨어 유포, 또는 암호화폐 채굴기 설치 등 기업 인프라 전반에 치명적인 비즈니스 중단 및 데이터 유출 피해를 야기할 수 있습니다.
공식 보안 권고문 및 참조 링크
GeoServer is an open source server that allows users to share and edit geospatial data. Prior to versions 2.22.6, 2.23.6, 2.24.4, and 2.25.2, multiple OGC request parameters allow Remote Code Execution (RCE) by unauthenticated users through specially crafted input against a default GeoServer installation due to unsafely evaluating property names as XPath expressions. The GeoTools library API that GeoServer calls evaluates property/attribute names for feature types in a way that unsafely passes them to the commons-jxpath library which can execute arbitrary code when evaluating XPath expressions. This XPath evaluation is intended to be used only by complex feature types (i.e., Application Schema data stores) but is incorrectly being applied to simple feature types as well which makes this vulnerability apply to **ALL** GeoServer instances. No public PoC is provided but this vulnerability has been confirmed to be exploitable through WFS GetFeature, WFS GetPropertyValue, WMS GetMap, WMS GetFeatureInfo, WMS GetLegendGraphic and WPS Execute requests. This vulnerability can lead to executing arbitrary code. Versions 2.22.6, 2.23.6, 2.24.4, and 2.25.2 contain a patch for the issue. A workaround exists by removing the `gt-complex-x.y.jar` file from the GeoServer where `x.y` is the GeoTools version (e.g., `gt-complex-31.1.jar` if running GeoServer 2.25.1). This will remove the vulnerable code from GeoServer but may break some GeoServer functionality or prevent GeoServer from deploying if the gt-complex module is needed.
자주 묻는 실무 질문 (FAQ — CVE-2024-36401)
FAQQ1. CVE-2024-36401 취약점의 위험도와 실제 악용 가능성은 어느 정도입니까?
CVE-2024-36401의 기본 점수는 CVSS 9.8 (CRITICAL)이며, 향후 30일 내 실제 악용 확률을 나타내는 EPSS 점수는 99.8%입니다. 현재 미국 CISA KEV(실제 악용이 확인된 취약점 카탈로그)에 등재되어 있으므로 최우선 긴급 패치가 필요합니다.
Q2. CVE-2024-36401에 영향을 받는 벤더와 제품은 무엇입니까?
주요 영향 벤더는 geoserver, geotools이며, 대상 컴포넌트는 geoserver입니다. 상세 영향 범위: GeoServer 2.22.6, 2.23.6, 2.24.4, 2.25.2 미만의 모든 버전 (기본 설치된 모든 GeoServer 인스턴스가 취약함)
Q3. 서버 재기동이나 정규 패치 전 즉시 적용할 수 있는 완화 조치(Workaround)는 무엇입니까?
[권장 조치] 즉시 공식 패치 버전(2.22.6, 2.23.6, 2.24.4, 2.25.2 이상)으로 업그레이드하거나, 임시 완화 조치로 'gt-complex' JAR 파일을 제거하십시오 본문의 패치 및 우회 명령어 섹션과 자가 점검 체크리스트를 참고하여 외부 노출 포트를 차단하거나 WAF 탐지 규칙을 선적용하십시오.
CVE-2024-36401 사내 보안 패치 공지문 · CISO 경영진 보고서 초안 자동 생성
클릭 한 번으로 사내 이메일·노션·결재 문서에 바로 붙여넣을 수 있는 공식 보고서 양식을 생성합니다.
🔗 함께 점검해야 할 동일 벤더·스택 연관 취약점 (geoserver)
동일 카테고리 전체 보기 →Langflow 미인증 원격 코드 실행(RCE) 취약점 보안 권고 (CVE-2026-33017)
[영향 대상] Langflow 1.9.0 미만 버전
IBM Langflow OSS 원격 코드 실행(RCE) 취약점 보안 권고 (CVE-2026-9198)
[영향 대상] IBM Langflow OSS 버전 1.0.0 이상 1.10.0 이하의 기본 배포 환경
Microsoft SharePoint 원격 코드 실행(RCE) 취약점 보안 권고 (CVE-2026-65660)
[영향 대상] Microsoft SharePoint Server 2016, 2019 및 Subscription Edition 전 버전
Apache ActiveMQ Jolokia JMX-HTTP 브릿지 원격 코드 실행(RCE) 취약점 보안 권고 (CVE-2026-34197)
[영향 대상] Apache ActiveMQ Classic 5.19.4 미만 버전 및 6.0.0 이상 6.2.3 미만 버전
일간 취약점 브리핑 및 긴급 Zero-Day 경보 구독
보안 실무자와 인프라·백엔드 엔지니어를 위해 매일 아침 주요 취약점과 패치 우선순위를 요약해 발송합니다.