Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessScrape public nonce from rating page
-
DeliverySend crafted gdrts_live_handler AJAX request
-
ExploitInject payload via title/url Render Args
-
ExecutionStore unsanitized script in rating item
-
ImpactScript executes in visitor browsers
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V1 - Encoding and Sanitization Output encoding, context-aware escaping
MITRE ATT&CK
2 techniques across 2 tactics: Initial Access, Execution The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Exploitable only against sites running the GD Rating System plugin (versions up to and including 3.7.1) with at least one rating item rendered on a publicly reachable page - that rendering is what exposes the per-item nonce in the gdrts-rating-data JSON block and makes the gdrts_live_handler AJAX action usable by an anonymous visitor. No authentication, privileges, or attacker-side user interaction are required to inject via the 'title'/'url' Render Args. The practical limiting factor is that the stored payload only executes when a victim subsequently browses the affected page, so impact scales with page traffic; impact is confined to client-side script execution (C:L/I:L, no availability or direct server impact), and sites that do not expose rating items publicly materially reduce exposure. |
| Impact | This is a genuine, actionable priority but not a drop-everything emergency. The CVSS 3.1 vector (AV:N/AC:L/PR:N/UI:N/S:C) confirmed by Wordfence rates it 7.2 High: fully remote, low-complexity, and unauthenticated, which is the worst-case access profile. The unauthenticated status is credible here because the description explains the per-item nonce - the only apparent gatekeeper - is publicly emitted in the <script class="gdrts-rating-data"> JSON block on every page rendering a rating item, so it is not a real authentication barrier (consistent with the PR:N in the vector). Offsetting this, impact is limited to C:L/I:L/A:N (stored XSS, no direct server compromise), and the scope change (S:C) reflects script execution crossing into victims' browser contexts rather than privilege escalation on the host. No EPSS score, no CISA KEV listing, and no public exploit code are present in the provided data, so there is no evidence of active exploitation or mass scanning - exploitation status is 'no public exploit identified at time of analysis.' One caveat the raw vector hides: although UI:N is scored for the attacker's injection step, the payload only fires when a user later visits the poisoned page, so real-world impact depends on victim traffic. Net: treat as a standard high-severity WordPress plugin XSS to patch promptly, weighted down by a modest deployment footprint and the absence of any exploitation signal. |
| Exploit ScenarioDerived | An unauthenticated attacker loads any public page that displays a GD Rating System rating item and scrapes the per-item nonce from the inline gdrts-rating-data JSON block. They then send a crafted gdrts_live_handler AJAX request supplying a malicious 'title' or 'url' Render Arg, storing a JavaScript payload that is served back without proper sanitization or output escaping. When any subsequent visitor - potentially including a logged-in administrator - views the affected page, the script executes in their browser, enabling session/cookie theft or admin-context actions. No public exploit code is referenced in the provided data. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 03, 2026
Stored cross-site scripting in the GD Rating System plugin for WordPress (all versions up to and including 3.7.1) allows an unauthenticated visitor to inject persistent JavaScript through the 'title' and 'url' Render Args processed by the gdrts_live_handler AJAX action. The action's per-item nonce provides no protection here, because the nonce is emitted in plaintext inside the gdrts-rating-data JSON block on every page that displays a rating item, so any anonymous visitor can harvest it; the injected script then runs in the browser of anyone who later views the poisoned page, giving low-impact confidentiality and integrity effects limited to the client. No public exploit code has been identified at time of analysis, and exploitation requires that the site both runs an affected plugin version and publicly renders at least one rating item.
RemediationAI
Upstream fix available (PR/commit); released patched version not independently confirmed - the Wordfence advisory points to plugin repository changeset 3723329 (https://plugins.trac.wordpress.org/changeset?reponame=&old=3723329%40gd-rating-system&new=3723329%40gd-rating-system), which contains the corrected code, so operators should upgrade to a tagged GD Rating System release newer than 3.7.1 as soon as the plugin repository publishes one and verify the version no longer contains the unfixed render-argument handling. Because the per-item nonce is intentionally public, rotating or hiding it is not a valid mitigation and no nonce-based workaround should be relied on; effective compensating controls while patching is pending are to deactivate the plugin entirely (complete fix, but removes all rating functionality), or to prevent rating items from being rendered on publicly reachable pages (for example by restricting the pages/templates that include the rating shortcode or widget to authenticated users, which preserves functionality for logged-in audiences at the cost of anonymous ratings), or to block or filter requests to admin-ajax.php that carry unexpected 'title'/'url' render-argument content via a WAF or reverse-proxy rule (partial protection since payloads can be encoded and legitimate rating submissions share the endpoint). A restrictive Content-Security-Policy that disallows inline and third-party scripts can reduce execution of the stored payload but commonly breaks other WordPress plugins and themes, so it should be tested before enforcement. After applying any of these measures, administrators should review existing rating items for injected markup and remove any poisoned entries.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
The affected component is the WordPress plugin gd-rating-system (CPE cpe:2.3:a:gdragon:gd_rating_system:*:*:*:*:*:*:*:*), a star-rating and review system that stores rating items and updates them asynchronously. The root cause is CWE-79 (Improper Neutralization of Input During Web Page Generation / Cross-Site Scripting): the AJAX handler gdrts_live_handler accepts the 'title' and 'url' render arguments and writes them into stored rating-item data without adequate sanitization, and the front-end templates render that data without proper output escaping. Reported vulnerable code locations include rating/core.ajax.php:184 (AJAX handling), rating/engine.single.php:140 and rating/core.item.php:383 (render-argument processing), and templates/stars-rating/gdrts--stars-rating--list--default-table.php:44 (output). Although the AJAX action is nominally nonce-protected, the per-item nonce is placed in the page's <script class="gdrts-rating-data"> JSON block on any public page that renders the rating item, making it readable by unauthenticated visitors; the CVSS 3.1 vector AV:N/AC:L/PR:N/UI:N/S:C/C:L/I:L/A:N therefore reflects remote, unauthenticated injection with a scope change and low confidentiality/integrity impact but no availability impact.
Know when Gd Rating System gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
AV:N/AC:L/PR:N/UI:N/S:C/C:L/I:L/A:N
Publicly emitted nonce makes injection unauthenticated (PR:N) and low-complexity (AC:L) over the network; stored XSS crosses into victim browser context (S:C) with limited C/I and no availability impact.
Primary rating from Vendor (Wordfence).
CVSS VectorVendor: Wordfence
DescriptionCVE.org
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.
Executive ViewAI
The GD Rating System plugin for WordPress, versions up to and including 3.7.1, contains a stored cross-site scripting vulnerability that allows remote attackers to inject persistent malicious scripts into pages viewed by site visitors. This can lead to theft of visitor session data, defacement, or redirection to malicious sites, damaging organizational reputation and user trust. No vendor-released patch identified at time of analysis, and no public exploit identified at time of analysis.
Disable or remove the GD Rating System plugin. If the plugin is required, ensure rating items are not publicly rendered (set to draft/private). Deploy WAF rules to block malicious payloads targeting the gdrts_live_handler AJAX action. Monitor logs for exploitation attempts.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Cross-Site Scripting occurs when an application accepts untrusted data and sends it to a web browser without proper validation or encoding.
More in Gd Rating System
View allThe GD Rating System plugin 2.3 for WordPress has Directory Traversal in the wp-admin/admin.php panel parameter for the
The GD Rating System plugin 2.3 for WordPress has Directory Traversal in the wp-admin/admin.php panel parameter for the
The GD Rating System plugin 2.3 for WordPress has Directory Traversal in the wp-admin/admin.php panel parameter for the
The GD Rating System plugin 2.3 for WordPress has Directory Traversal in the wp-admin/admin.php panel parameter for the
The GD Rating System plugin 2.3 for WordPress has XSS via the wp-admin/admin.php panel parameter for the gd-rating-syste
The GD Rating System plugin 2.3 for WordPress has XSS via the wp-admin/admin.php panel parameter for the gd-rating-syste
The GD Rating System plugin 2.3 for WordPress has XSS via the wp-admin/admin.php panel parameter for the gd-rating-syste
The GD Rating System plugin 2.3 for WordPress has XSS via the wp-admin/admin.php panel parameter for the gd-rating-syste
Unauthenticated SQL injection in the GD Rating System WordPress plugin (versions <= 3.6.2) allows remote attackers to in
Blind SQL injection in the GD Rating System WordPress plugin (versions up to and including 3.7) allows authenticated att
Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting') vulnerability in Milan Petrovic GD
EUVD-2026-91922
GHSA-2fcm-3887-5h6p
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB