CVE-2026-93430 WordPress GD Rating System 存储型 XSS 漏洞
影响未授权攻击者可注入恶意脚本,在用户访问页面时执行
GD Rating System 是 WordPress 的评分插件。其 gdrts_live_handler AJAX 接口在处理 title 和 url 渲染参数时,输入过滤与输出转义不足,导致存储型跨站脚本漏洞。攻击者可将恶意脚本注入页面,任何访问该页面的用户都会触发执行。
影响范围
所有版本至 3.7.1(含 3.7.1)均受影响。
漏洞详情
漏洞类型为存储型跨站脚本(Stored XSS)。成因是 gdrts_live_handler AJAX 处理函数对 title 和 url 参数未做充分的输入清理与输出转义。虽然该 AJAX 动作需要 per-item nonce,但该 nonce 会随页面中 gdrts-rating-data 的 JSON 脚本块公开输出,任何未授权访客均可获取,因此不构成认证屏障。攻击者可借此注入任意 Web 脚本,在用户访问被注入页面时执行。
利用条件与风险
利用无需认证,仅需从页面获取公开的 nonce 即可发起攻击,实战风险较高,可导致会话劫持、页面篡改等后果。
修复建议
建议升级至官方修复版本;在补丁发布前,可考虑禁用或限制该插件的评分 AJAX 功能,并对相关输入进行额外过滤。具体修复版本暂无公开信息。
The GD Rating System plugin for WordPress is vulnerable to Stored Cross-Site Scripting via ‘title’ and ‘url’ Render Args in gdrts_live_handler AJAX in all versions up to, and including, 3.7.1 due to insufficient input sanitization and output escaping. This makes it possible for unauthenticated attackers to inject arbitrary web scripts in pages that will execute whenever a user accesses an injected page. Although the AJAX action requires a per-item nonce, that nonce is publicly emitted in the page’s <script class=”gdrts-rating-data”> JSON block on every page rendering the rating item, making it obtainable by any unauthenticated visitor and therefore not an authentication barrier.