CVE-2025-24893 – XWiki SolrSearch宏未授权远程代码执行漏洞分析

本文详细分析了CVE-2025-24893漏洞,这是一个XWiki平台中的严重未授权远程代码执行漏洞。攻击者可通过SolrSearch宏注入Groovy代码实现系统级命令执行,影响15.10.11、16.4.1和16.5.0RC1之前的所有版本。

CVE-2025-24893 – XWiki SolrSearch宏未授权远程代码执行漏洞

概述

CVE-2025-24893是XWiki(一个流行的开源企业Wiki平台)中存在的一个严重的未授权远程代码执行(RCE)漏洞。该漏洞源于SolrSearch宏在处理搜索查询中的Groovy表达式时存在缺陷,允许未经验证的攻击者远程执行任意Groovy代码,无需任何身份验证或先前访问权限。

CVE ID: CVE-2025-24893
严重等级: 严重
CVSS评分: 9.8 (CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H)
EPSS评分: 92.01%(利用可能性极高)
发布日期: 2025年2月20日
受影响版本: 15.10.11、16.4.1和16.5.0RC1之前的所有版本
已修复版本: 15.10.11、16.4.1、16.5.0RC1

技术分析

XWiki包含一个名为SolrSearch的宏(定义在Main.SolrSearchMacros中),该宏通过嵌入式Solr引擎实现全文搜索。漏洞源于该宏在Groovy中评估搜索参数时未能对恶意输入进行清理或限制。

攻击者可以通过GET请求将Groovy表达式注入搜索查询,导致系统在XWiki服务器进程上下文中评估任意代码。

示例易受攻击的端点:

1
GET /xwiki/bin/view/Main/SolrSearchMacros?search=...(包含嵌入的Groovy代码)

如果Groovy表达式包含系统级命令(如创建文件或启动进程),这将导致直接的RCE。

利用条件

  • 无需身份验证(来宾访问足够)
  • 公开暴露的XWiki实例
  • 使用受影响版本
  • SolrSearch宏可用

漏洞代码上下文

根本原因是在SolrSearch宏内部对Groovy内容的不安全评估:

1
2
def query = "search=${params.search}"  // 无清理
def result = evaluate(query)           // 危险的evaluate()使用

利用步骤

  1. 构造Groovy代码注入:构建一个将系统命令嵌入搜索参数的有效载荷。
  2. 向宏发送GET请求
    1
    
    curl "http://<target>/xwiki/bin/view/Main/SolrSearchMacros?search=groovy:java.lang.Runtime.getRuntime().exec('touch /tmp/pwned')"
    
  3. 实现RCE:注入的代码被执行,攻击者获得XWiki服务器上的系统级访问权限。

利用与PoC

目前尚无此CVE的官方Metasploit模块,但GitHub上存在一个可用的PoC:
📎 https://github.com/a1baradi/Exploit/blob/main/CVE-2025-24893.py

缓解措施

  • 立即升级

    • 15.x用户:升级至15.10.11
    • 16.4.x用户:升级至16.4.1
    • 其他用户:使用16.5.0RC1或更新版本
  • 限制来宾访问:尽可能禁用应用程序的匿名来宾访问。

  • 使用Web应用程序防火墙(WAF):实施过滤以阻止恶意查询参数。

  • 监控日志:检查SolrSearch端点访问日志中的异常Groovy表达式。

参考

  • GitHub Advisory GHSA-rr6p-3pfg-562j
  • NVD Entry – CVE-2025-24893
  • Ionix Blog Analysis
  • PoC Exploit Script

点击下方访问我们学习库中的CVE-2025-24893实验。CVE实验可通过Learn Enterprise账户获得。

[访问此实验]

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计