CVE-2025-11825CVE-2025-11825是WordPress Playerzbr插件中存在的一个存储型跨站脚本(Stored XSS)漏洞,该漏洞由WordFence安全团队的研究员发现并报告。该漏洞存在于Playerzbr插件1.6及之前的所有版本中,由于插件在处理'urlmeta'文章自定义字段(post meta field)时缺乏充分的输入净化(input sanitization)和输出转义(output escaping)机制,导致恶意脚本可以被注入到数据库中并在用户访问受感染页面时自动执行。
根据CVSS 3.1评分体系,该漏洞评分为6.4分,属于中危级别。其攻击向量为网络攻击(AV:N),攻击复杂度低(AC:L),但需要低权限认证(PR:L),无需用户交互(UI:N)。该漏洞的影响范围发生了变化(S:C),表明漏洞的影响可以扩展到超出存在漏洞组件的范围。机密性影响为低(C:L),完整性影响为低(I:L),可用性影响为无(A:N)。
该漏洞特别值得关注的是,拥有贡献者(contributor)级别及以上权限的认证攻击者即可利用此漏洞。这意味着在多用户WordPress站点中,任何能够创建或编辑内容的用户都有可能成为攻击者。攻击者可以通过在文章的自定义字段中注入恶意JavaScript代码,当其他用户(包括管理员)访问包含该字段的页面时,恶意代码将在其浏览器中执行,可能导致会话劫持、权限提升、敏感信息窃取等严重后果。
该存储型XSS漏洞的核心问题在于Playerzbr插件对'urlmeta'文章自定义字段的处理逻辑存在缺陷。具体技术细节如下:
1. **输入验证缺失**:插件在保存文章自定义字段'urlmeta'时,未对用户输入进行充分的净化处理。WordPress虽然提供了sanitize_text_field()、wp_kses()等安全函数用于清理用户输入,但插件开发者未正确使用这些函数来过滤潜在的恶意HTML标签和JavaScript代码。
2. **输出转义不足**:即使输入时进行了部分处理,在输出'urlmeta'字段内容到前端页面时,插件也未使用esc_html()、esc_attr()、esc_url()等转义函数对输出内容进行编码,导致恶意脚本可以直接在浏览器中解析执行。
3. **漏洞触发点**:根据参考链接显示,漏洞位于playerzbr.php文件的第193行和第229行附近,这些位置涉及urlmeta字段的读取和输出逻辑。
4. **利用方式**:攻击者首先需要拥有一个贡献者级别的WordPress账户,然后创建或编辑一篇文章,在文章的'urlmeta'自定义字段中注入类似`<script>alert(document.cookie)</script>`或`<img src=x onerror=alert(1)>`的恶意代码。提交后,该恶意代码将存储在WordPress数据库中。每当其他用户(包括管理员)访问包含该文章的页面时,恶意脚本将在其浏览器上下文中执行。
5. **权限要求**:利用此漏洞需要PR:L(低权限认证),具体为贡献者级别及以上权限。这意味着攻击者需要先获得合法的WordPress账户,这通常通过开放注册或社工手段实现。