CVE-2025-12804CVE-2025-12804是WordPress Booking Calendar插件中的一个存储型跨站脚本(Stored XSS)漏洞。该漏洞存在于插件的bookingcalendar短代码功能中,由于对用户提供的属性参数缺乏充分的输入清理和输出转义处理,导致具有contributor级别权限的认证用户可以在页面中注入任意Web脚本。攻击者利用此漏洞注入的恶意脚本会被永久存储在数据库中,当其他用户访问包含恶意代码的页面时,脚本将自动执行,可能导致会话劫持、敏感信息窃取、恶意重定向等安全问题。该漏洞影响插件10.14.6及以下所有版本,CVSS评分为6.4(中危),攻击向量为网络,认证要求为低权限,攻击复杂度低,无需用户交互即可实施攻击。
该漏洞的根本原因在于Booking Calendar插件在处理shortcode属性时未进行安全的数据验证和转义处理。具体来说,当用户在WordPress页面或文章中插入[bookingcalendar]短代码时,插件会读取并使用用户提供的属性值,但这些属性值直接被嵌入到HTML输出中而未经过适当的sanitization或escaping处理。攻击者(具有contributor权限)可以构造包含恶意JavaScript代码的属性值,例如在属性中注入<script>标签或事件处理器(如onerror、onload等)。由于插件将用户输入存储在数据库中,这种恶意代码会被永久保存。当其他用户访问包含该短代码的页面时,恶意脚本会在其浏览器上下文中执行,绕过了同源策略的限制。攻击者可利用此漏洞窃取Cookies、会话令牌、执行任意操作或重定向用户到恶意网站。