GeoServer WMS GetFeatureInfo 格式存在反射型XSS漏洞 (CVE-2025-21621) 详解

本文详细披露了GeoServer在WMS服务GetFeatureInfo的HTML输出格式中存在的一个反射型跨站脚本漏洞。攻击者可利用特制参数在受害者浏览器中执行恶意代码,可能导致用户数据被窃取或应用被完全控制。

漏洞概述

GeoServer 的 WMS GetFeatureInfo HTML 输出格式存在一个反射型跨站脚本(XSS)漏洞,允许远程攻击者通过特制的 SLD_BODY 参数在受害者的浏览器中执行任意 JavaScript 代码。

受影响版本

  • 受影响组件
    • org.geoserver.web:gs-web-app (Maven)
    • org.geoserver:gs-wms (Maven)
  • 受影响版本< 2.25.0
  • 已修复版本2.25.0

漏洞详情

该漏洞存在于WMS服务的GetFeatureInfo功能中。控制HTML自动转义的WMS服务设置在受影响版本中默认被禁用完全缺失

影响

如果攻击者能够控制将在受害者浏览器中执行的脚本,他们通常可以完全控制该用户。具体影响包括:

  • 执行该用户能够在应用程序中执行的任何操作。
  • 查看该用户能够查看的任何信息。
  • 修改该用户能够修改的任何信息。
  • 发起与其他应用程序用户的交互(包括恶意攻击),这些交互将看似来自最初的受害者用户。

缓解措施

在多数环境中,更改以下任一WMS服务设置应可缓解此漏洞:

  1. 启用 GetFeatureInfo HTML 自动转义(适用于 GeoServer 2.21.3+ 和 2.22.1+ 版本)
  2. 禁用动态样式
  3. 禁用 GetFeatureInfo 的 text/html MIME 类型

参考链接

漏洞信息

  • CVE ID: CVE-2025-21621
  • GHSA ID: GHSA-w66h-j855-qr72
  • 严重等级: 中等 (CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N)
  • 弱点类型: CWE-79 - 在网页生成过程中对输入的不当中和(跨站脚本)

来源

  • 报告者: sikeoka
  • 发布者: aaime
  • 首次发布: 2025年11月25日
  • 最后更新: 2025年11月25日
comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计