CVE-2025-10192CVE-2025-10192是WordPress WP Photo Effects插件中存在的一个存储型跨站脚本(Stored XSS)漏洞。该漏洞由Wordfence安全团队的安全研究员发现并报告,CVSS评分为6.4,属于中危级别漏洞。WP Photo Effects是一款用于为WordPress网站图片添加各种特效的插件,允许用户通过短代码(shortcode)在文章和页面中展示图片效果。然而,该插件在处理用户通过短代码属性提交的内容时,未能进行充分的输入清理和输出转义,导致恶意脚本可以被持久化存储到网站数据库中。当其他用户访问包含恶意代码的页面时,嵌入的恶意脚本将在受害者浏览器中自动执行,从而实现会话劫持、cookie窃取、权限提升或网站内容篡改等攻击。该漏洞影响该插件的所有版本,最高至1.2.4版本(含)。攻击者需要具备贡献者(contributor)级别及以上的WordPress账户权限即可利用此漏洞。由于该漏洞利用门槛较低且影响范围明确,建议相关网站管理员尽快采取修复措施。
该漏洞的核心问题在于WP Photo Effects插件对其注册的'wppe_effect'短代码(shortcode)处理过程中缺乏对用户输入属性的充分过滤和转义。具体技术原理如下:
1. 短代码注册机制:WordPress插件通过add_shortcode()函数注册短代码及其回调函数。当用户在文章内容中插入[wppe_effect]短代码及其属性时,WordPress核心会解析这些属性并将其作为参数传递给回调函数。
2. 输入验证缺失:WP Photo Effects插件在photo-effect.php文件的第132行附近处理短代码属性时,未使用WordPress提供的sanitize_text_field()、esc_attr()、esc_url()或wp_kses()等安全函数对用户输入的属性值进行清理和转义。攻击者可以在属性值中注入恶意JavaScript代码片段。
3. 输出转义缺失:插件在将处理后的内容输出到页面HTML时,也未使用esc_html()、esc_attr()等函数对输出内容进行HTML实体编码,导致恶意脚本直接以可执行形式写入页面。
4. 利用方式:具有贡献者权限的攻击者可以创建或编辑文章,在短代码属性中插入类似以下payload:
[wppe_effect effect="some_value" onmouseover="alert(document.cookie)" other_attr=""]
或者通过更隐蔽的方式注入完整的脚本标签。当文章发布后,任何访问该页面的用户(包括管理员)都会触发恶意脚本执行。
5. 影响范围:由于是存储型XSS,恶意代码被持久化保存在数据库中,所有访问受影响页面的用户都会受到影响,攻击者可窃取用户会话cookie、管理员凭证,或在管理员上下文中执行任意操作。