CVE-2025-10138CVE-2025-10138是WordPress平台上一款名为'This-or-That'的插件中存在的存储型跨站脚本(Stored XSS)漏洞。该漏洞由WordFence安全团队的安全研究员发现,并于2025年10月22日正式披露。该漏洞存在于插件的'thisorthat'短代码(shortcode)处理逻辑中,由于对用户输入的属性参数缺乏充分的输入净化(input sanitization)和输出转义(output escaping)处理,导致恶意攻击者可以注入任意JavaScript脚本代码。
该漏洞影响该插件的所有版本,最高至1.0.4版本(含)。成功利用此漏洞需要攻击者拥有WordPress网站的贡献者(contributor)级别或以上的访问权限。一旦利用成功,注入的恶意脚本将被持久化存储在目标网站的页面中,每当有用户访问被注入的页面时,恶意脚本就会自动执行。这可能导致用户会话劫持、敏感信息窃取、网站内容篡改、恶意重定向等多种安全风险。CVSS评分为6.4分,属于中等严重级别,攻击向量为网络攻击,需要低权限认证,无需用户交互,影响范围为已更改(Scope Changed),对机密性和完整性产生低影响。
该漏洞的核心技术原理在于WordPress插件'This-or-That'在处理'thisorthat'短代码时,对用户通过短代码属性传入的参数值未进行充分的HTML实体编码和JavaScript关键字过滤。当贡献者级别或以上权限的用户在文章或页面中插入类似[thisorthat attribute="恶意代码"]的短代码时,插件直接将用户输入的属性值渲染到HTML输出中,而没有调用WordPress提供的esc_attr()、esc_html()或wp_kses()等安全转义函数进行过滤。
具体而言,攻击者可以构造包含JavaScript事件处理器(如onerror、onload、onmouseover等)或直接嵌入<script>标签的短代码属性值。例如,通过在短代码属性中注入onmouseover="alert(document.cookie)"或<img src=x onerror=alert(1)>等payload,当页面被渲染时,这些恶意脚本将在受害者的浏览器上下文中执行。由于该漏洞属于存储型XSS,注入的payload会保存在数据库中,影响所有后续访问该页面的用户,包括管理员用户,从而可能实现权限提升攻击。
攻击者利用此漏洞的步骤包括:首先注册或获取一个贡献者级别的WordPress账户,然后创建或编辑文章,在文章内容中插入包含恶意脚本的'thisorthat'短代码,最后发布文章。当其他用户(尤其是管理员)查看该文章时,恶意脚本将在其浏览器中执行,可能导致cookie窃取、会话劫持或执行管理操作等后果。