CVE-2025-12324CVE-2025-12324是WordPress平台下TablePress插件的一个存储型跨站脚本(Stored XSS)漏洞。该插件是WordPress生态中最流行的表格管理插件之一,允许用户通过简码(shortcode)在页面和文章中嵌入数据表格。漏洞源于插件对用户提供的简码属性(shortcode attributes)缺乏充分的输入清理和输出转义处理。在3.2.3及之前的所有版本中,攻击者只需拥有贡献者(contributor)级别及以上的WordPress账户,即可利用table简码属性注入任意JavaScript脚本代码。这些恶意代码会被永久存储在数据库中,当其他用户访问包含被注入简码的页面时,恶意脚本将自动执行,可能导致会话劫持、敏感信息窃取、钓鱼攻击等安全威胁。由于该漏洞属于存储型XSS,其危害性高于反射型和DOM型XSS,攻击者无需诱导受害者点击特定链接即可实施攻击。
漏洞根源在于TablePress插件的frontend控制器(controller-frontend.php第605行附近)对table简码属性的处理逻辑存在安全缺陷。具体而言,插件在解析和渲染table简码时,直接将用户可控的属性参数输出到HTML页面,而未进行适当的输入验证和输出编码。例如,攻击者可以通过以下简码属性注入恶意代码:[table id=1 custom_css=任意内容]或利用其他简码参数注入<script>标签或事件处理器(如onerror、onload等)。由于WordPress的简码机制会在页面加载时自动解析并执行这些简码,被注入的恶意脚本会被永久存储在文章/页面的post_content字段中。当管理员或其他用户访问包含恶意简码的页面时,浏览器会将其作为可信内容执行,从而绕过同源策略限制。攻击者可以利用此漏洞窃取管理员Cookie、修改页面内容、重定向用户或执行其他客户端攻击。修复版本3.2.4通过在输出时对所有简码属性进行HTML实体编码来解决此问题。