CVE-2026-5247该插件在4.10.0及之前版本中存在存储型XSS漏洞。漏洞源于[futureaction]短代码的'wrapper'属性缺乏足够的输入清理机制。尽管开发者使用了esc_html()函数进行转义,但这仅能编码HTML实体,无法防止在sprintf()调用中将值作为HTML标签名使用时的属性注入。具备管理员权限的攻击者可利用此漏洞在页面中注入恶意Web脚本。若管理员将此功能开放给低权限用户,还可能导致贡献者滥用该漏洞。
该漏洞的核心在于插件对用户输入的处理逻辑存在缺陷。在ShortcodeController.php中,插件接收'wrapper'参数,并直接将其作为HTML标签名拼接到页面结构中。虽然esc_html()被用来过滤输入,它能将尖括号等字符转换为HTML实体,从而防止简单的标签闭合注入。然而,它无法处理空格后的内容。攻击者可以在wrapper值中插入空格,随后跟随事件处理程序(如onmouseover、onload)。例如,输入“div onmouseover=alert(1)”经过sprintf处理后,生成的HTML代码变成了带有事件属性的标签。当用户访问包含该短代码的页面时,嵌入的JavaScript代码将在浏览器中执行,导致存储型XSS攻击。