CVE-2026-5820WordPress的Zypento Blocks插件在1.0.6及之前版本中存在存储型跨站脚本(XSS)漏洞。该漏洞由插件中的“目录”功能块引发,原因在于前端渲染脚本在处理标题文本时缺乏适当的清理。脚本通过`innerText`获取标题内容,随后直接使用`innerHTML`将其插入页面,未进行HTML实体编码。拥有作者及以上权限的认证攻击者可利用此缺陷在页面中注入恶意Web脚本。当其他用户访问被植入恶意代码的页面时,脚本将在其浏览器上下文中执行,可能导致账户劫持或恶意操作。
该漏洞的核心在于Zypento Blocks插件前端JavaScript代码对DOM操作的不当使用。根据漏洞分析,受影响的文件路径为`assets/js/src/blocks/table-of-contents/view.js`。在生成目录时,代码首先使用`innerText`属性读取页面中的标题文本。虽然`innerText`通常用于获取纯文本,但在该场景下,开发者将获取的数据直接传递给`innerHTML`属性以重新构建DOM节点。由于`innerHTML`会解析其中的HTML标签,如果攻击者在文章标题中构造特殊的恶意字符或标签(尽管`innerText`通常会剥离标签,但在特定DOM结构或操作序列下可能存在绕过或数据混淆),这些数据在被插入时不会被转义。攻击者只需具备文章编辑权限,即可将恶意载荷存入数据库。当普通用户或管理员访问包含该目录块的页面时,恶意脚本即在前端执行,实现存储型XSS攻击。