CVE-2024-36401是GeoServer中的一个高危远程代码执行漏洞。GeoServer是一款开源的地理数据服务器软件,主要用于发布、共享和处理各种地理空间数据。
漏洞原理: 该漏洞源于GeoServer在处理属性名称时,将其不安全地解析为XPath表达式。具体而言,GeoServer调用的GeoTools库API在评估要素类型的属性名称时,以不安全的方式将其传递给commons-jxpath库。由于commons-jxpath库在解析XPath表达式时允许执行任意代码,攻击者可以通过构造特定的输入,利用多个OGC请求参数(如WFS GetFeature、WFS GetPropertyValue、WMS GetMap等),在未经身份验证的情况下远程执行任意代码。
漏洞危害: 成功利用该漏洞的攻击者可以在受影响的GeoServer实例上执行任意代码,进而完全控制服务器。这可能导致敏感数据泄露、服务中断,甚至进一步的网络攻击,给组织带来严重的安全风险。
受影响版本:
- GeoServer 2.23.6之前的版本
- GeoServer 2.24.0至2.24.3版本
- GeoServer 2.25.0至2.25.1版本
修复建议: 官方已发布修复版本,建议受影响的用户尽快升级至以下版本:
- GeoServer 2.23.6或更高版本
- GeoServer 2.24.4或更高版本
- GeoServer 2.25.2或更高版本
此外,官方还提供了先前版本的补丁,包括修复后的gt-app-schema、gt-complex和gt-xsd-core jar文件。用户可从GeoServer的发布页面下载相应补丁,并替换原有文件以修复漏洞。
在升级或应用补丁之前,建议用户评估可能的影响,并在测试环境中进行验证,以确保系统的稳定性和兼容性。