2024年7月4日,网上更新披露了一个GeoServer远程代码执行漏洞(CVE-2024-36401),GeoServer是一款开源地图服务器,主要用于发布、共享和处理各种地理空间数据,其依赖 GeoTools 库来处理地理空间数据,请各位用户尽快安装漏洞补丁。
漏洞风险:受影响版本的 GeoTools 库 API 在处理要素类型的属性名称时,会将这些属性名称不安全地传递给 commons-jxpath 库进行解析,且 commons-jxpath 库在解析 XPath 表达式时可以执行任意代码,导致未经身份验证的用户能够通过 /geoserver/wfs 接口执行任意代码。在修复版本中,通过在 GeoTools 库中新增 JXPathUtils 类提供 newSafeContext 方法,该方法通过设置空的 FunctionLibrary 来创建禁止调用 Java 方法的 JXPathContext,防止在 XPath 表达式中调用任意 Java 方法。
风险等级:高风险。
影响范围:
1、 GeoServer < 2.23.6
2、 2.24.0 <= GeoServer < 2.24.4
3、 2.25.0 <= GeoServer < 2.25.2
修复建议:
目前官方已有可更新版本,建议受影响用户升级至最新版本。同时,官方已发布先前版本的补丁可供下载,包括已修复的 gt-app-schemagt、gt-complex和gt-xsd-corejar文件。补丁可从以下GeoServer版本的发布页面下载,下载后使用补丁文件替换原文件即可。
进行安全更新方法:
https://github.com/geoserver/geoserver/releases/tag/2.25.2