CVE-2025-9030CVE-2025-9030是WordPress的Majestic Before After Image插件中存在的一个存储型跨站脚本(Stored XSS)漏洞。该漏洞由Wordfence安全团队的安全研究员发现并报告,CVSS评分为5.4分,属于中危级别漏洞。
Majestic Before After Image是一款用于在WordPress网站上创建图片前后对比效果的插件,广泛应用于产品展示、设计作品展示等场景。该插件允许用户通过简码(shortcode)的方式在文章或页面中嵌入前后对比图片,并可以自定义前后图片的标签文字。
该漏洞存在于插件的版本2.0.1及以下版本中,影响插件的'before_label'(前标签)和'after_label'(后标签)两个参数。由于插件在处理用户输入时未对这些参数进行充分的输入清理(sanitization)和输出转义(escaping),导致恶意用户可以在这些参数中注入任意JavaScript代码。由于这些数据会被持久化存储到数据库中,当其他用户访问包含恶意代码的页面时,注入的脚本将在受害者浏览器中自动执行,从而实现窃取用户会话、劫持账户、篡改页面内容或执行其他恶意操作。
此漏洞的攻击前提是攻击者需要拥有Contributor(投稿者)级别及以上的WordPress账户权限。虽然这限制了一定的攻击范围,但在许多允许用户注册的WordPress网站上,投稿者账户的注册门槛较低,因此该漏洞仍具有较大的安全风险。
该漏洞的根本原因在于Majestic Before After Image插件在处理简码参数时缺乏对用户输入的适当过滤和转义处理。
**漏洞原理:**
1. 插件注册了一个WordPress简码(如[majestic_before_after_image]),该简码接受多个参数,包括'before_label'和'after_label'。
2. 当贡献者或更高权限的用户在文章编辑器中插入该简码并设置自定义标签值时,这些值会被直接保存到文章内容中。
3. 插件在渲染前端页面时,直接将这些参数值输出到HTML中,没有进行HTML实体编码或JavaScript上下文转义。
4. 攻击者可以在标签参数中注入恶意JavaScript代码,例如:`<script>alert(document.cookie)</script>` 或 `<img src=x onerror=...>`。
5. 由于这些值被持久化存储(存储型XSS),每当任何用户访问包含该简码的文章页面时,恶意脚本都会执行。
**利用方式:**
1. 攻击者注册或利用已有的Contributor级别账户登录WordPress后台。
2. 创建新文章或编辑现有文章,在内容中插入Majestic Before After Image简码。
3. 在'before_label'或'after_label'参数中注入恶意JavaScript代码。
4. 发布文章后,任何访问该页面的用户(包括管理员)都会执行恶意脚本。
5. 攻击者可利用此漏洞窃取管理员Cookie、会话令牌,或执行其他恶意操作以进一步控制网站。