CVE-2025-11866CVE-2025-11866是WordPress插件Photographers galleries中存在的一个存储型跨站脚本(Stored XSS)漏洞。该漏洞由Wordfence安全团队的安全研究员发现,并于2025年10月22日公开披露。CVSS 3.1评分为6.4分,属于中危级别。
Photographers galleries是一款用于WordPress网站的相册画廊展示插件,允许用户创建和管理摄影作品展示。该插件通过短代码(shortcode)的方式在文章或页面中嵌入画廊功能,提供了丰富的自定义属性以控制画廊的外观和行为。
该漏洞存在于插件的所有1.1.8及以下版本中。漏洞的根本原因在于插件未能对用户通过短代码属性(如w、h、raw_css、look等)传入的数据进行充分的输入过滤和输出转义处理。当这些未经净化的用户输入被插入到HTML属性或内联样式中时,攻击者可以注入恶意的JavaScript代码。由于这些恶意脚本被持久化存储在WordPress数据库中,任何访问受影响页面的用户都会触发脚本执行,从而实现窃取会话Cookie、劫持用户账户、篡改页面内容或执行其他恶意操作。
该漏洞需要攻击者至少拥有Contributor(投稿者)级别的WordPress账户权限才能利用,这限制了其直接利用的范围。然而,在多用户WordPress网站(如企业网站、教育平台或社区论坛)中,投稿者权限相对容易获取,或者攻击者可能通过社会工程学手段获取低权限账户,因此该漏洞仍然具有较高的实际威胁。
该漏洞的核心技术原理是插件对短代码属性的处理缺乏安全防护。具体技术细节如下:
1. **输入验证缺失**:插件的shortcodes.php文件中(第61行附近),多个短代码属性(包括w、h、raw_css、look等)直接接收用户输入而未进行任何过滤或转义处理。这些属性本应用于配置画廊的宽度、高度、自定义CSS和外观样式等。
2. **输出转义缺失**:当插件将这些属性值渲染到HTML页面时,没有使用WordPress提供的转义函数(如esc_attr()、esc_html()、esc_url()等)进行适当的输出转义。特别是当属性值被插入到内联style属性或事件处理器属性中时,攻击者可以闭合现有属性并注入新的恶意属性。
3. **存储型XSS机制**:由于短代码内容被存储在WordPress数据库的文章内容中,恶意脚本也会被持久化保存。每当普通用户访问包含恶意短代码的文章或页面时,嵌入的JavaScript代码将在用户的浏览器上下文中自动执行。
4. **利用方式**:攻击者首先获取Contributor或更高权限的WordPress账户,然后创建一篇新文章或页面,在内容中插入类似以下的恶意短代码:
`[gallery w="100\" onmouseover=\"alert(document.cookie)\"" h="100"]`
或者通过raw_css属性注入更复杂的payload。
5. **影响范围**:由于脚本在所有访问者的浏览器中执行,攻击者可以窃取管理员的会话Cookie(如果管理员访问了该页面),进而完全控制网站。此外,攻击者还可以进行钓鱼攻击、恶意重定向、植入恶意软件等。