CVE-2026-9125Presto Player是WordPress平台上广受欢迎的视频播放插件。2026年6月,安全研究人员发现该插件存在严重的存储型跨站脚本(XSS)漏洞。漏洞根源在于`getOverlays()`函数对`[presto_player_overlay]`短代码中的`link_url`参数处理不当——该函数直接将`link_url`属性值复制到覆盖层配置中,未进行充分的输入清理和输出转义。更危险的是,该函数缺少协议验证机制,导致攻击者可以使用`javascript:`协议前缀构造恶意URI。当用户访问包含恶意短代码的页面时,presto-dynamic-overlay-ui Web组件会将这些未经过滤的数据渲染为可点击的锚点链接。一旦用户点击该链接,嵌入的JavaScript代码就会在受害者浏览器中执行,可能导致会话劫持、敏感数据窃取或进一步的恶意操作。此漏洞需要攻击者具备至少contributor级别的账户权限,影响范围覆盖Presto Player 4.2.0及之前所有版本。
漏洞位于Presto Player插件的Shortcodes.php文件中,具体涉及`getOverlays()`函数(第464行和513行附近)。该函数在处理`link_url`短代码属性时存在以下问题:1) 直接将用户输入的`link_url`值赋值给overlay配置对象,未进行URL协议白名单校验;2) 缺少对`javascript:`等危险协议前缀的过滤;3) 输出时未进行适当的HTML转义。攻击者只需构造如下短代码即可触发漏洞:`[presto_player_overlay link_url="javascript:alert(document.cookie)"]`。当presto-dynamic-overlays.js组件渲染覆盖层时,会将该值直接作为href属性输出到DOM中。浏览器在解析href属性时识别javascript:协议,会在点击时执行其中的JavaScript代码。由于漏洞属于存储型XSS,恶意代码会永久保存在数据库中,所有访问该页面的用户都会受到影响,包括管理员。