【成功复现】GeoServer 远程代码执行漏洞(CVE-2024-36401)
【成功复现】GeoServer 远程代码执行漏洞(CVE-2024-36401)
cexlife 飓风网络安全 2024-07-04 20:51
漏洞描述:
GeoServer是一款开源地图服务器,主要用于发布、共享和处理各种地理空间数据,其依赖GeoTools库来处理地理空间数据,受影响版本的 GeoTools 库 API 在处理要素类型的属性名称时,会将这些属性名称不安全地传递给commons-jxpath库进行解析,且 commons-jxpath库在解析XPath 表达式时可以执行任意代码,导致未经身份验证的用户能够通过/geoserver/wfs 接口执行任意代码,在修复版本中,通过在 GeoTools 库中新增 JXPathUtils 类提供 newSafeContext 方法,该方法通过设置空的 FunctionLibrary 来创建禁止调用 Java 方法的 JXPathContext,防止在 XPath 表达式中调用任意 Java 方法。
POC:
POST /wfs HTTP/1.1Host: ipContent-Type: application/xmlContent-Length: 336
影响范围:2.25.0 <= GeoServer < 2.25.22.24.0 <= GeoServer < 2.24.4GeoServer < 2.23.6安全版本:GeoServer 2.25.2
GeoServer 2.24.4
GeoServer 2.23.6
修复建议:
升级至安全版本及其以上