CVE-2025-39361 Overview
CVE-2025-39361 is a stored Cross-Site Scripting (XSS) vulnerability in the Royal Elementor Addons plugin for WordPress developed by WP Royal. The flaw affects all versions of royal-elementor-addons up to and including 1.7.1017. Authenticated contributors can inject malicious JavaScript that persists in the database and executes in the browsers of users who view affected pages. The vulnerability is tracked as [CWE-79] and stems from improper neutralization of user input during web page generation. Because the scope is changed, injected scripts can affect users beyond the attacker's own security context.
Critical Impact
Authenticated attackers with low privileges can inject persistent JavaScript payloads that execute against site visitors and administrators, enabling session theft, defacement, and administrative actions on behalf of victims.
Affected Products
- WP Royal Royal Elementor Addons (royal-elementor-addons) versions through 1.7.1017
- WordPress sites running the plugin with contributor-level or higher accounts
- Any Elementor-based site relying on the affected plugin widgets
Discovery Timeline
- 2025-05-07 - CVE-2025-39361 published to NVD
- 2026-06-17 - Last updated in NVD database
Technical Details for CVE-2025-39361
Vulnerability Analysis
The vulnerability is a stored XSS flaw classified under [CWE-79], Improper Neutralization of Input During Web Page Generation. Royal Elementor Addons accepts user-supplied input through one or more widget or shortcode parameters and renders that input in the page output without sufficient sanitization or output encoding. An authenticated user with permission to edit or create content can persist a JavaScript payload inside the WordPress database. When another user renders a page containing the affected widget, the payload executes in the victim's browser under the site's origin.
Exploitation requires low privileges and user interaction, but the changed scope means the injected script can act against higher-privileged users, including administrators. Successful exploitation enables cookie theft, session hijacking, forced administrative actions through the WordPress REST API, and delivery of secondary payloads. The current EPSS score is 0.24%.
Root Cause
The root cause is missing or inadequate input sanitization on plugin-provided fields combined with unescaped output rendering. WordPress provides helper functions such as wp_kses_post(), esc_html(), esc_attr(), and esc_url() for context-aware encoding. The affected code paths in royal-elementor-addons do not apply these helpers consistently before echoing attribute or HTML content back to the page.
Attack Vector
The attack vector is network-based over standard HTTP or HTTPS. An authenticated contributor or higher-privileged user submits a crafted payload through a vulnerable widget field in the Elementor editor. The payload is stored and later rendered when a victim visits the page. See the Patchstack Vulnerability Report for the vendor-tracked technical details.
No verified public proof-of-concept code was available at the time of writing. The vulnerability mechanism follows the standard stored XSS pattern: authenticated write, unsanitized storage, unescaped render.
Detection Methods for CVE-2025-39361
Indicators of Compromise
- Unexpected <script>, <svg onload=...>, or javascript: URI content stored in wp_postmeta or Elementor _elementor_data records.
- Outbound requests from visitor browsers to unfamiliar domains after loading pages built with Royal Elementor Addons widgets.
- New administrator accounts, plugin installs, or option changes correlated with contributor-level content edits.
- Anomalous session cookie transmission or forced logouts reported by editors and administrators.
Detection Strategies
- Audit wp_posts and wp_postmeta for HTML event handler attributes (onerror, onload, onmouseover) inside content produced by contributor accounts.
- Deploy a Web Application Firewall (WAF) rule set that flags XSS payload patterns in POST bodies destined for admin-ajax.php and the Elementor save endpoints.
- Correlate contributor-level edits with subsequent script execution telemetry from Content Security Policy (CSP) violation reports.
Monitoring Recommendations
- Enable and monitor a strict Content Security Policy with report-uri or report-to directives to capture inline script execution attempts.
- Log and review all plugin and theme file modifications along with administrator role assignments.
- Track the installed version of royal-elementor-addons across WordPress fleet inventories to identify unpatched sites.
How to Mitigate CVE-2025-39361
Immediate Actions Required
- Upgrade Royal Elementor Addons to the version released after 1.7.1017 that addresses this vulnerability.
- Audit all contributor, author, and editor accounts and remove or disable any that are unnecessary or inactive.
- Review recent edits to pages using Royal Elementor Addons widgets and remove any embedded script content.
- Rotate administrator session cookies and passwords if suspicious activity is identified.
Patch Information
Refer to the Patchstack Vulnerability Report for the fixed version and vendor guidance. Apply the update through the WordPress plugin manager or via wp-cli across all managed sites.
Workarounds
- Temporarily deactivate the royal-elementor-addons plugin on sites that cannot upgrade immediately.
- Restrict contributor and author accounts to trusted users and enforce strong authentication with multi-factor authentication.
- Deploy a WAF rule to block requests containing common XSS payload signatures targeting Elementor save endpoints.
# Update the plugin fleet-wide using wp-cli
wp plugin update royal-elementor-addons --all-sites
# Verify the installed version is above 1.7.1017
wp plugin get royal-elementor-addons --field=version
Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.

