CVE-2025-11809CVE-2025-11809是WordPress WP-Force Images Download插件中存在的一个存储型跨站脚本(Stored XSS)漏洞。该插件是一款用于强制下载WordPress站点图片的工具,提供了通过短代码(shortcode)将图片下载功能嵌入页面的能力。
该漏洞存在于插件的'wpfid'短代码处理逻辑中,具体位于'class'属性的处理流程中。由于插件开发者在实现短代码渲染时,未对用户输入的'class'属性值进行充分的输入净化(input sanitization)和输出转义(output escaping),导致攻击者可以在该属性中注入恶意的JavaScript代码。这些恶意代码会被持久化存储到WordPress数据库中,每当有用户访问包含该短代码的页面时,恶意脚本就会在受害者浏览器中自动执行。
根据CVSS 3.1评分标准,该漏洞评分为6.4分,属于中危级别。攻击者需要具备Contributor(投稿者)级别及以上的认证权限才能利用此漏洞,但一旦利用成功,可以在管理员或其他高权限用户访问被注入页面时执行任意JavaScript代码,从而窃取会话Cookie、篡改页面内容、进行权限提升或执行其他恶意操作。
该漏洞影响插件的所有版本,包括最新发布的1.8版本及之前的所有版本。由于该漏洞需要认证权限才能利用,且影响范围限于已认证用户可访问的内容,因此其严重程度被评定为中危。Wordfence安全团队于2025年10月22日公开披露了该漏洞,并提供了相应的修复建议。
该漏洞的根本原因在于WP-Force Images Download插件在处理'wpfid'短代码时,对'class'属性的输入验证和输出编码存在缺陷。
技术原理分析:
1. WordPress短代码机制允许开发者在文章、页面或自定义帖子类型中通过[shortcode_name attribute="value"]的形式插入动态内容。WP-Force Images Download插件注册了名为'wpfid'的短代码,用于在页面中渲染图片下载功能。
2. 在短代码处理函数中,插件接收用户传入的'class'属性值,该属性通常用于为渲染的HTML元素添加CSS样式类。然而,插件未对该属性值调用WordPress标准的安全函数(如esc_attr()、sanitize_text_field()或wp_kses())进行净化处理。
3. 由于缺少输出转义,攻击者构造的恶意JavaScript代码(如onerror、onload事件处理器或包含<script>标签的内容)会被原样写入最终生成的HTML输出中。
4. 当受害用户访问包含该恶意短代码的页面时,浏览器会解析并执行嵌入的恶意脚本,导致XSS攻击成功。
利用方式:
攻击者首先需要拥有一个Contributor级别及以上的WordPress账号(可通过注册获得)。然后在创建或编辑文章/页面时,插入如下恶意短代码:
[wpfid class="x" onmouseover="alert(document.cookie)"]
或者使用更隐蔽的注入方式,在class属性中嵌入完整的恶意脚本载荷。当管理员预览、审核或访问该页面时,恶意代码即被执行。