CVE-2024-36401
Geoserver에서 속성 이름 표현식 평가 시 발생하는 원격 코드 실행(RCE) 취약점
- 게시됨
- 2024. 7. 1.
- 업데이트됨
- 2025. 10. 21.
- CNA 할당 중
- GitHub_M
- 증거 관찰됨
- 2024. 7. 15.
기본 CVSS
nvd · CVSS 3.1
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H높음 · 다음 30일
- 백분위수
- 100.0%
- 모델 날짜
- 2026. 10. 15.
EPSS는 통계적 추정치이지 확실성이나 영향의 척도가 아닙니다. 이를 CVSS, KEV 상태, 노출 및 환경과 결합하세요.
악용된 것으로 알려진 CISA
이 CVE는 CISA 알려진 악용 취약점 카탈로그에 나타납니다.
요약
GeoServer는 사용자가 지리공간 데이터를 공유하고 편집할 수 있는 오픈 소스 서버입니다. 2.22.6, 2.23.6, 2.24.4 및 2.25.2 버전 이전에는 기본 GeoServer 설치에 대해 특수하게 조작된 입력을 통해 인증되지 않은 사용자가 원격 코드 실행(RCE)을 허용할 수 있는 여러 OGC 요청 파라미터가 존재합니다. 이는 속성 이름을 XPath 표현식으로 안전하지 않게 평가하기 때문입니다. GeoServer가 호출하는 GeoTools 라이브러리 API는 피처 타입의 속성 이름을 평가할 때 이를 안전하지 않게 commons-jxpath 라이브러리로 전달하며, commons-jxpath 라이브러리는 XPath 표현식을 평가할 때 임의 코드를 실행할 수 있습니다. 이 XPath 평가는 복합 피처 타입(즉, Application Schema 데이터 저장소)에서만 사용하도록 의도되었지만 단순 피처 타입에도 잘못 적용되고 있으므로 이 취약점은 **모든** GeoServer 인스턴스에 영향을 미칩니다. 공개된 PoC는 제공되지 않지만, 이 취약점은 WFS GetFeature, WFS GetPropertyValue, WMS GetMap, WMS GetFeatureInfo, WMS GetLegendGraphic 및 WPS Execute 요청을 통해 악용 가능한 것으로 확인되었습니다. 이 취약점은 임의 코드 실행으로 이어질 수 있습니다. 2.22.6, 2.23.6, 2.24.4 및 2.25.2 버전에는 이 문제에 대한 패치가 포함되어 있습니다. GeoServer에서 `gt-complex-x.y.jar` 파일을 제거하여 해결하는 방법도 있습니다. 여기서 `x.y`는 GeoTools 버전입니다(예: GeoServer 2.25.1을 실행 중인 경우 `gt-complex-31.1.jar`). 이렇게 하면 GeoServer에서 취약한 코드가 제거되지만, 일부 GeoServer 기능이 손상되거나 gt-complex 모듈이 필요한 경우 GeoServer 배포가 실패할 수 있습니다.
소스
geoserver/CVE-2024-36401
GeoServer Unauthenticated Remote Code Execution in Evaluating Property Name Expressions (CVE-2024-36401)
Vulhub vulnerability labs명시된 조건
- lab image version: vulhub/geoserver:2.23.2(geoserver/CVE-2024-36401/docker-compose.yml:services.web.image)
modules/exploits/multi/http/geoserver_unauth_rce_cve_2024_36401.rb
Metasploit Framework modules명시된 조건
- platform: Linux,Unix,Windows($.exploit_multi/http/geoserver_unauth_rce_cve_2024_36401.platform)
- verification: check_declared($.exploit_multi/http/geoserver_unauth_rce_cve_2024_36401.check)
http/cves/2024/CVE-2024-36401.yaml
Nuclei Templates명시된 조건
- network: http($.protocol_keys)
- verification: word($.matchers[*].type)
- oob: interactsh_reference($.template_text)
책임 있는 사용
귀하가 소유하고 있거나 테스트할 권한이 있는 시스템에 대해서만 취약점 정보를 사용하십시오. Kitploit은 공개 연구 메타데이터에 연결되며 익스플로잇 코드나 악성 페이로드를 저장하지 않습니다.