Skip to main content

Ocean Pro Demos CVE-2026-81929

| EUVDEUVD-2026-95509 HIGH
Cross-site Scripting (XSS) (CWE-79)
2026-10-09 Wordfence GHSA-g78h-gc63-cm8r
7.2
CVSS 3.1 · Vendor: Wordfence
View

Attack ChainAIDerived

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

  1. Access
    Send unauthenticated save_popup_content AJAX request
  2. Exploit
    Inject script via 'content' parameter
  3. Execution
    Payload stored in published Gutenberg popup
  4. Impact
    Executes in visitor browsers on configured pages

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

Exploitation requires the target WordPress site to run an affected premium OceanWP plugin (Ocean Pro Demos <=1.5.4 or Ocean eComm Treasure Box <=1.8.0) with a valid premium license active, the Popup Builder module enabled, and at least one published Gutenberg popup configured to display on a page. Given those configuration prerequisites, the attack itself needs no authentication and no attacker-side user interaction - the flaw is insufficient authorization on the save_popup_content AJAX action. Limiting factors: the premium-license, specific-module, and published-popup requirements are non-default conditions that significantly narrow which installations are actually exploitable; the stored payload only fires for visitors of pages where the affected popup is set to display.

Impact

The CVSS 3.1 base score of 7.2 (High) is driven by a network attack vector (AV:N), low complexity (AC:L), no required privileges (PR:N, i.e. unauthenticated per the 'insufficient authorization' flaw in the save_popup_content AJAX action), no user interaction on the attacker's side (UI:N), and a changed scope (S:C) reflecting that injected script executes in visitors' browsers beyond the vulnerable WordPress component, with Low confidentiality and integrity impact and no availability impact (C:L/I:L/A:N). No EPSS score, SSVC decision, KEV listing, or public POC was provided in the input, so there is no signal of active or probable exploitation to corroborate the High base score - this currently reads as a high-CVSS issue whose real-world priority is tempered by the absence of exploitation evidence AND by substantial non-attacker deployment prerequisites (a valid premium license, the enabled Popup Builder module, and at least one published Gutenberg popup configured for display). These prerequisites are site-configuration conditions, not attacker barriers, but they meaningfully shrink the exploitable population. Net: a legitimately exploitable unauthenticated stored XSS worth patching promptly on affected premium OceanWP installs, but not a drop-everything internet-wide emergency absent exploitation telemetry. EPSS, KEV, SSVC, and POC data are all MISSING and should be checked before final triage.

Exploit ScenarioDerived

An unauthenticated attacker sends a crafted request to the Popup Builder's save_popup_content AJAX action, injecting malicious JavaScript into the 'content' parameter of a published Gutenberg popup. Because authorization, sanitization, and output escaping are insufficient, the script is stored and later executes in the browser of every visitor who loads a page where that popup is configured to display. No public exploit code was identified in the provided data, but the attack requires no authentication and no attacker-side user interaction.

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

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

Alert me

AnalysisAIv1 – Oct 09, 2026

Stored cross-site scripting in the OceanWP "Ocean Pro Demos" (up to and including 1.5.4) and "Ocean eComm Treasure Box" (up to and including 1.8.0) WordPress plugins allows unauthenticated remote attackers to inject arbitrary JavaScript into a published Gutenberg popup through the Popup Builder's save_popup_content AJAX action, which then executes in the browser of any visitor viewing a page where that popup is configured to display. The CVSS 3.1 base score is 7.2 (High) with vector AV:N/AC:L/PR:N/UI:N/S:C/C:L/I:L/A:N, reflecting a network-reachable, low-complexity attack requiring no privileges or user interaction, though the scope-changed rating and low confidentiality/integrity impact reflect that payload execution is confined to the victim's browser context. Exploitation is conditional: the site must run an affected premium plugin with a valid premium license active, the Popup Builder module enabled, and at least one published Gutenberg popup configured for display; there is no public exploit identified at time of analysis and the vulnerability is not confirmed actively exploited (no CISA KEV listing), with no EPSS score provided in the source data.

RemediationAI

No vendor-released patch was identified at time of analysis and no fixed version number is stated in the available data, so administrators should first check the Ocean Pro Demos and Ocean eComm Treasure Box changelogs (https://docs.oceanwp.org/article/670-ocean-pro-demos-changelog and https://docs.oceanwp.org/article/860-ocean-ecomm-treasure-box-changelog) for a newly released version that addresses the save_popup_content handler and, if one exists, upgrade both plugins immediately; until then, treat every version at or below 1.5.4 and 1.8.0 respectively as vulnerable. Because exploitation depends on the Popup Builder module, the highest-value compensating control is to disable that module entirely (or deactivate the affected plugins if the module cannot be turned off independently) - the trade-off is loss of any legitimate popup functionality on the site. If popups must remain live, unpublish every Gutenberg popup that is configured to display on public pages and audit existing popup content for injected script tags, accepting that this removes the marketing/engagement purpose of the feature. A network-layer or virtual-patching rule that blocks unauthenticated POST requests to admin-ajax.php carrying the action=save_popup_content parameter is a further containment measure, but it can break legitimate administrative workflows if it is not scoped to unauthenticated sessions. Because the sink is a stored payload rendered to visitors, site owners should also consider a WAF response-body filtering rule and a review of web server and application logs for anomalous admin-ajax.php calls, plus revocation of any WordPress sessions if a payload is found in existing popup content. Monitor the Wordfence advisory at https://www.wordfence.com/threat-intel/vulnerabilities/id/8d4719da-aed3-413d-be8c-62a8ca376b90?source=cve for patch status updates, as the absence of patch data in this analysis does not confirm that no fix will be issued.

Affected VersionsENISA

Ocean eComm Treasure Box 0 ≤1.8.0
Ocean Pro Demos 0 ≤1.5.4

Affected Packages

euvd ocean_ecomm_treasure_box no fix
euvd ocean_pro_demos no fix

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 2 packages in euvd

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

The root cause is CWE-79 (Improper Neutralization of Input During Web Page Generation, i.e. stored cross-site scripting), arising from a combination of missing authorization, missing input sanitization, and missing output escaping in a single AJAX handler. The affected code path is the Popup Builder module's 'save_popup_content' AJAX action exposed through WordPress's admin-ajax.php; because the handler does not enforce a capability check or nonce/authorization validation, an unauthenticated request can reach it, and because the 'content' parameter is neither sanitized on input nor escaped on output, attacker-supplied script markup is persisted and later rendered as part of a published Gutenberg popup. The CPE data identifies the two affected WordPress plugins as ocewp:ocean_pro_demos and oceanwp:ocean_ecomm_treasure_box, both maintained by OceanWP, with the flaw present in all versions up to and including 1.5.4 and 1.8.0 respectively. The scope-changed (S:C) component of the CVSS vector reflects that the injected script executes in the security context of the site's visitors rather than the vulnerable component itself, and the low C/I ratings reflect that impact is limited to client-side script execution (session/credential theft, defacement, redirection) rather than server compromise. The referenced OceanWP documentation for the Popup Builder (docs.oceanwp.org/article/887-popup-builder) confirms the module is an opt-in feature gated behind a premium license, which is the key reason the attack surface is narrower than a default plugin install would suggest.

Know when Ocean Pro Demos 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

Unauthenticated AJAX endpoint with broken authorization gives AV:N/AC:L/PR:N/UI:N; stored XSS executing in visitor browsers crosses to a separate security scope (S:C) with Low 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 Ocean Pro Demos and Ocean eComm Treasure Box plugins for WordPress is vulnerable to Stored Cross-Site Scripting via the 'content' parameter in all versions up to, and including, 1.5.4, and 1.8.0, respectively, due to insufficient authorization, input sanitization, and output escaping in the Popup Builder's save_popup_content AJAX action. This makes it possible for unauthenticated attackers to inject arbitrary web scripts into a published Gutenberg popup that will execute whenever a user accesses a page on which the popup is configured to display. A valid premium license, the Popup Builder module, and at least one published Gutenberg popup configured for display are required.

Executive ViewAI

Why It Matters

The OceanWP premium plugins 'Ocean Pro Demos' (up to and including 1.5.4) and 'Ocean eComm Treasure Box' (up to and including 1.8.0) contain a stored cross-site scripting flaw in the Popup Builder module that lets an unauthenticated attacker plant JavaScript in a published popup, which then runs in the browser of every visitor who sees that popup - no login, no user action, and no special access required. With no vendor fix available, any organization running these plugins with Popup Builder enabled is relying entirely on manual mitigations, exposing site visitors, customer trust, and brand reputation while the vendor remediates.

Business Impact: High
Compensating Controls

No vendor-released patch identified at time of analysis; interim mitigations are to disable or deactivate the Popup Builder module on all affected sites, unpublish or delete all published Gutenberg popups so the save_popup_content AJAX action has no reachable target, block or restrict unauthenticated requests to that AJAX action via WAF/reverse-proxy rules, inspect popup records and logs for injected script content, and keep the module disabled until the vendor ships fixed versions and those are validated and applied.

Threat Intelligence Overview

EPSS Score
0.2%
Top 86% exploitable
Prevalence
Low
premium-only OceanWP add-on plugins requiring paid license and specific module
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.2%
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
Yes
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.

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