지오서버의 원격 코드 실행(RCE) 취약점
여러 OGC 요청 매개변수는 속성 이름을 XPath 표현으로 안전하지 않게 평가하기 때문에 기본 GeoServer 설치에 대해 특별히 제작된 입력을 통해 인증되지 않은 사용자가 원격 코드 실행(RCE)을 허용합니다.
GeoServer가 호출하는 GeoTools 라이브러리 API는 피처 유형의 속성/속성 이름을 XPath 표현식을 평가할 때 임의의 코드를 실행할 수 있는 commons-jxpath 라이브러리에 안전하지 않게 전달하는 방식으로 평가합니다. 이 XPath 평가는 복잡한 기능 유형(예: 응용 프로그램 스키마 데이터 저장소)에서만 사용하도록 고안되었지만 단순한 기능 유형에도 잘못 적용되어 이 취약점이 모든 GeoServer 인스턴스에 적용됩니다.
공개 PoC는 제공되지 않지만 이 취약점은 WFS GetFeature, WFS GetPropertyValue, WMS GetMap, WMS GetFeatureInfo, WMS GetLegendGraphic 및 WPS Execute 요청을 통해 악용 가능한 것으로 확인되었습니다.
이 취약점으로 인해 임의의 코드가 실행될 수 있습니다.
'x.y'가 GeoTools 버전인 GeoServer에서 'gt-complex-x.y.jar' 파일을 제거하면 해결 방법이 있습니다(예: GeoServer 2.25.1을 실행하는 경우 'gt-complex-31.1.jar'). 이렇게 하면 GeoServer에서 취약한 코드가 제거되지만 사용 중인 확장 프로그램에 gt-complex 모듈이 필요한 경우 일부 GeoServer 기능이 중단되거나 GeoServer가 배포되지 않을 수 있습니다.
geoserver.war 배포에 대한 완화:
geoserver.war의 압축을 푼다WEB-INF/lib/gt-complex-x.y.jar 파일을 찾아 제거하세요.geoserver.war로 압축합니다.GeoServer 바이너리에 대한 완화:
webapps/geoserver/WEB-INF/lib/gt-complex-x.y.jar 파일을 찾아 제거합니다.다음 확장 및 커뮤니티 모듈은 gt-complex jar에 직접적으로 의존하는 것으로 알려져 있으며, 이것이 없으면 제대로 작동하지 않을 것으로 예상됩니다. 이는 포괄적인 목록이 아니며 추가 GeoServer 기능은 gt-complex jar의 가용성에 따라 달라질 수 있습니다.
기존 설치에서 세 개의 jar을 패치하는 이전 릴리스에 대해 완화 기능을 사용할 수 있습니다.
패치된 gt-app-schema, gt-complex 및 gt-xsd-core jar를 GeoServer용으로 다운로드할 수 있습니다: 2.25.1, 2.24.3, 2.24.2, 2.23.2, 2.22.2, 2.21.5, 2.21.4,2.20.7, 2.20.4, 2.19.2, 2.18.0.
예를 들어 2.25.1 페이지는 소스 포지에서 geoserver-2.25.1-patches.zip 다운로드에 연결됩니다.
사용하기 전에 빈 함수 목록으로 commons-jxpath를 구성하기 위해 패치된 3개의 jar가 포함된 geoserver-x.y.z-patches.zip의 압축을 풉니다. 이러한 파일은 대체되는 파일과 동일한 파일 이름을 가진 드롭인 대체 파일입니다.
위 지침에 따라 WEB-INF/lib 폴더를 찾고 기존 gt-app-schema, gt-complex 및 gt-xsd-core jar를 패치에서 제공하는 jar로 교체합니다.
https://github.com/geotools/geotools/security/advisories/GHSA-w3pj-wh35-fq8w https://osgeo-org.atlassian.net/browse/GEOT-7587 https://github.com/geotools/geotools/pull/4797 https://github.com/Warxim/CVE-2022-41852?tab=readme-ov-file#workaround-for-cve-2022-41852
필수 조치
Apply mitigations per vendor instructions or discontinue use of the product if mitigations are unavailable.
왜 이 VPI인가 (설명가능 · 실험적)
VPI 산정 기준
| 영향도 | 98.00 |
| 악용 신호(KEV 등재) | ×1.50 |
| VPI | 100.00 |
VPI 공식 vpi-v1 기준