存储型跨站脚本(XSS)漏洞报告 - MainWP插件
漏洞概述
在测试MainWP WordPress插件(https://github.com/mainwp/mainwp)时,发现客户端管理功能的"添加联系人"→联系人姓名字段存在存储型XSS漏洞。该漏洞源于应用程序在将用户输入渲染到DOM前未进行消毒处理,导致攻击者可注入恶意JavaScript载荷。
技术细节
漏洞复现步骤
- 在编辑客户端时向联系人姓名字段注入载荷:
1</TITLE><SCRIPT>alert("XSS By Rishail 2025");</SCRIPT> - 保存更改后,载荷以原始形式存储于数据库
- 重新加载客户端详情页面时JavaScript立即执行
影响评估
- 允许攻击者在查看受影响页面的用户浏览器中执行任意JavaScript
- 可能导致用户会话完全被控制
- 具体攻击向量:
- 窃取管理员会话cookies
- 以管理员身份执行未授权操作(如添加恶意客户端或插件)
- 通过存储的恶意脚本,任何查看或编辑该客户端的管理员都会触发载荷
漏洞利用场景
攻击者通过钓鱼、凭证泄露或插件配置错误获得低权限MainWP用户访问权限后,可植入该载荷并等待高级管理员触发。由于MainWP集中管理子WordPress站点, compromised管理员会话可导致:
- 向所有连接站点推送恶意插件/更新
- 添加恶意用户或客户端
- 在所有托管资产间进行横向移动
修复过程
时间线
- 2025年6月4日:初始漏洞报告提交
- 6月5日:厂商确认并标记为"已分类"
- 6月6日:开发团队提供修复版本mainwp.zip
- 6月8日:研究人员确认漏洞已修复
- 6月13日:问题解决并发布新版本,奖励50美元奖金
争议点
研究人员认为奖励金额(50美元)与漏洞严重性(中等)不匹配,厂商回应称:
- 所有XSS漏洞都需要预先获得管理员权限才能利用
- 管理员已可安装任意插件和运行自定义代码
- 此类漏洞不在漏洞赏金计划覆盖范围内
- 赏金重点针对无需管理员权限即可利用的漏洞
后续处理
- 厂商同意支持CVE分配请求
- 约定30天协调期后再进行CVE发布和技术细节披露
- 最终报告于2025年7月17日公开披露
漏洞类型:存储型跨站脚本(XSS)
影响组件:MainWP WordPress插件客户端管理模块
修复状态:已完全修复