Skip to main content

GD Rating System EUVDEUVD-2026-91922

| CVE-2026-93430 HIGH
Cross-site Scripting (XSS) (CWE-79)
2026-10-03 Wordfence GHSA-2fcm-3887-5h6p
7.2
CVSS 3.1 · Vendor: Wordfence
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Scrape public nonce from rating page
  2. Delivery
    Send crafted gdrts_live_handler AJAX request
  3. Exploit
    Inject payload via title/url Render Args
  4. Execution
    Store unsanitized script in rating item
  5. Impact
    Script 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.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
No patch listed yet 0.3% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – 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

GD Rating System 0 ≤3.7.1

Affected Packages

euvd gd_rating_system no fix

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

Vendor (Wordfence) PRIMARY 7.2 HIGH
AV:N/AC:L/PR:N/UI:N/S:C/C:L/I:L/A:N
vuln.today AI 7.2 HIGH

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.

3.1 AV:N/AC:L/PR:N/UI:N/S:C/C:L/I:L/A:N
4.0 AV:N/AC:L/AT:N/PR:N/UI:N/VC:L/VI:L/VA:N/SC:L/SI:L/SA:N

Primary rating from Vendor (Wordfence).

CVSS VectorVendor: Wordfence

Attack Vector
Network
Attack Complexity
Low
Privileges Required
None
User Interaction
None
Scope
Changed
Confidentiality
Low
Integrity
Low
Availability
None

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 &lt;script class="gdrts-rating-data"&gt; JSON block on every page rendering the rating item, making it obtainable by any unauthenticated visitor and therefore not an authentication barrier.

Executive ViewAI

Why It Matters

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.

Business Impact: High
Compensating Controls

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

EPSS Score
0.3%
Top 82% exploitable
Prevalence
Low
niche WordPress rating plugin, limited production install base
Data Quality
5 sources
Confidence: Medium

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.

SignalValue
Severity HIGH
CISA KEV No
Public POC No
EPSS 0.3%
Patch available No
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision
Scheduled
Exploitation
None
System Exposure· derived
Open
Automatable
No
Human Impact
High
Technical Impact
Partial

Priority Score

36
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +36
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Cross-Site Scripting occurs when an application accepts untrusted data and sends it to a web browser without proper validation or encoding.

CVE-2018-5291 HIGH POC
7.5 Jan 08

The GD Rating System plugin 2.3 for WordPress has Directory Traversal in the wp-admin/admin.php panel parameter for the

CVE-2018-5290 HIGH POC
7.5 Jan 08

The GD Rating System plugin 2.3 for WordPress has Directory Traversal in the wp-admin/admin.php panel parameter for the

CVE-2018-5289 HIGH POC
7.5 Jan 08

The GD Rating System plugin 2.3 for WordPress has Directory Traversal in the wp-admin/admin.php panel parameter for the

CVE-2018-5287 HIGH POC
7.5 Jan 08

The GD Rating System plugin 2.3 for WordPress has Directory Traversal in the wp-admin/admin.php panel parameter for the

CVE-2018-5293 MEDIUM POC
6.1 Jan 08

The GD Rating System plugin 2.3 for WordPress has XSS via the wp-admin/admin.php panel parameter for the gd-rating-syste

CVE-2018-5292 MEDIUM POC
6.1 Jan 08

The GD Rating System plugin 2.3 for WordPress has XSS via the wp-admin/admin.php panel parameter for the gd-rating-syste

CVE-2018-5288 MEDIUM POC
6.1 Jan 08

The GD Rating System plugin 2.3 for WordPress has XSS via the wp-admin/admin.php panel parameter for the gd-rating-syste

CVE-2018-5286 MEDIUM POC
6.1 Jan 08

The GD Rating System plugin 2.3 for WordPress has XSS via the wp-admin/admin.php panel parameter for the gd-rating-syste

CVE-2026-42639 CRITICAL
9.3 Jun 15

Unauthenticated SQL injection in the GD Rating System WordPress plugin (versions <= 3.6.2) allows remote attackers to in

CVE-2026-57771 HIGH
8.5 Jul 13

Blind SQL injection in the GD Rating System WordPress plugin (versions up to and including 3.7) allows authenticated att

CVE-2024-25093 HIGH
7.1 Feb 29

Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting') vulnerability in Milan Petrovic GD

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy