CVE-2025-11875SpendeOnline.org是WordPress平台上一个用于接受捐赠的插件。该插件在3.0.1及以下所有版本中存在一个严重的存储型跨站脚本(Stored XSS)漏洞。漏洞根源在于插件对spendeonline短代码(shortcode)中的用户输入属性缺乏充分的输入清理和输出转义。攻击者只需拥有WordPress网站的贡献者(contributor)级别权限,即可利用此漏洞在受影响的页面中注入任意JavaScript代码。由于该脚本会被永久存储在数据库中,任何访问包含恶意代码页面的用户都会自动执行攻击者注入的脚本,从而可能导致会话劫持、凭据窃取、恶意重定向等严重后果。此漏洞影响范围广泛,所有使用该插件且版本低于3.0.2的WordPress网站都处于风险之中。
漏洞存在于spendeonline.php文件的短代码处理逻辑中(约第46行)。当用户通过短代码[spendeonline attribute='value']形式调用插件功能时,插件直接获取用户提供的属性参数而未进行任何消毒处理。具体来说,插件使用了类似add_shortcode()函数注册短代码,但在处理属性时直接输出到HTML页面,缺少esc_html()或esc_attr()等WordPress安全函数的保护。攻击者可以通过构造恶意属性值(如onerror='alert(XSS)'或onload='document.location="evil.com"')注入JavaScript代码。由于这些属性值被存储在WordPress的posts表中,当页面被访问时恶意代码会自动执行。攻击者利用此漏洞可窃取管理员cookie、提升权限或植入后门程序。修复版本3.0.2通过添加htmlspecialchars()和wp_kses()函数对所有用户输入进行严格过滤和转义。