CVE-2025-11987CVE-2025-11987是WordPress平台下Visual Link Preview插件的一个高危安全漏洞。该插件用于在WordPress文章中创建可视化链接预览功能,版本至2.2.7均受影响。漏洞类型为存储型跨站脚本攻击(Stored XSS),源于插件在处理shortcode属性时未能对用户输入进行充分的输入消毒和输出转义。攻击者通过利用该插件的visual-link-preview短代码,可以将恶意JavaScript代码注入到网页内容中。由于漏洞属于存储型,被注入的恶意脚本会永久保存在服务器端,当其他用户访问包含恶意代码的页面时,攻击代码会自动执行。攻击成功的前提条件是攻击者拥有WordPress网站的 contributor 级别或更高权限账户,这意味着攻击者无需管理员权限即可实施攻击。该漏洞具有持久性危害,一旦恶意代码被注入,所有访问受影响页面的用户都可能受到攻击,包括窃取会话Cookie、劫持用户账户、进行钓鱼攻击或传播恶意软件等。
漏洞存在于Visual Link Preview插件处理shortcode属性的逻辑中。在文件 includes/public/class-vlp-link.php 第56行以及模板文件 templates/link/simple/simple.php 中,插件直接使用用户提供的属性值而未进行适当的输入验证和输出转义。具体来说,当用户通过 [visual-link-preview] 短代码插入链接预览时,插件会读取并使用shortcode属性中的参数,但这些参数被直接嵌入到HTML输出中而未经过htmlspecialchars()或其他转义函数处理。攻击者可以通过构造包含JavaScript代码的属性值来实现XSS攻击,例如在属性中注入 onerror、onload 等事件处理器或script标签。由于该插件使用add_shortcode()注册短代码,shortcode属性会作为数组传递给处理函数,而插件未对这些属性值进行过滤就直接输出到HTML中。攻击者只需要在具有写文章权限的账户下,在文章内容中插入恶意shortcode即可触发漏洞。