Skip to main content

Greenshift EUVDEUVD-2026-91240

| CVE-2026-93880 MEDIUM
Cross-site Scripting (XSS) (CWE-79)
2026-10-02 Wordfence GHSA-369c-9pjf-fccj
6.1
CVSS 3.1 · Vendor: Wordfence
View

Attack ChainAIDerived

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

  1. Access
    Craft malicious GET parameter value
  2. Delivery
    Deliver link to victim via phishing
  3. Exploit
    Victim clicks, value reflected into script module
  4. Execution
    Payload executes in victim browser
  5. Impact
    Session/credential theft or action-on-behalf

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 a non-default content configuration: a site administrator must have previously set a Greenshift element block's Custom JS field to include a '{{GET:...}}' dynamic placeholder, and that JS must contain the token 'import', which routes the attacker-controlled GET value into an unescaped raw echo inside a <script type="module"> tag. Given that, an unauthenticated remote attacker (PR:N) can inject script, but success also requires victim user interaction (UI:R) - the victim must click an attacker-crafted link. Sites that do not use {{GET:}} placeholders in Custom JS, or whose Custom JS lacks the 'import' token, are not exploitable, so the realistic exposed population is a subset of installs on Greenshift ≤13.2.0.

Impact

This is a moderate-severity reflected XSS (CWE-79) with a conflicting-signal profile that places it well below the priority of a typical 'network, unauthenticated' critical. The CVSS 3.1 vector (AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N, base 6.1) reflects a remote unauthenticated attacker, but exploitation is not against a default install: per the description it only works when a site administrator has already configured an element block's Custom JS field to embed a {{GET:...}} placeholder AND that JS contains the token 'import', which forces the value into an unescaped raw echo inside a <script type="module"> tag. That precondition is the dominant real-world risk limiter and arguably warrants higher attack complexity than the AC:L in the supplied vector - a point worth verifying, as the config dependency makes affected sites a small subset of all installs. No EPSS score, KEV entry, or POC was provided in the input; exploitation status is therefore 'no public exploit identified at time of analysis.' UI:R further requires tricking a victim into clicking a crafted link. Net: a real but conditional, low-complexity-to-weaponize-once-configured issue that should be patched on a normal cadence, not an emergency, absent evidence of active exploitation.

Exploit ScenarioDerived

On a site where an administrator has configured a Greenshift element block's Custom JS to use a {{GET:...}} placeholder with JavaScript containing the 'import' keyword, an attacker crafts a URL with a malicious value in the targeted GET parameter and lures a victim into clicking it. The unsanitized value is reflected into a <script type="module"> block and executes in the victim's browser session. No public exploit code was identified in the provided data.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.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 02, 2026

Reflected cross-site scripting in the Greenshift - animation and page builder blocks WordPress plugin (all versions up to and including 13.2.0) allows an unauthenticated remote attacker to inject arbitrary script that is echoed unescaped inside a <script type="module"> tag when the '{{GET:...}}' dynamic placeholder is used in an element block's Custom JS field. Exploitation is conditional rather than universal: a site administrator must previously have configured a block's Custom JS to include a {{GET:...}} placeholder and that JavaScript must contain the token 'import', and the victim must then be tricked into visiting an attacker-crafted link (assessed CVSS:3.1 AV:N/AC:H/PR:N/UI:R/S:C/C:L/I:L/A:N; base 6.1 per the vendor CVE record). No public exploit code and no confirmed active exploitation (CISA KEV) were identified at time of analysis, so the realistically exposed population is the subset of Greenshift ≤13.2.0 sites that use {{GET:}} placeholders in Custom JS containing 'import'.

RemediationAI

Primary fix: upgrade Greenshift - animation and page builder blocks to a release newer than 13.2.0 as soon as the vendor publishes it; review the WordPress.org Trac changeset referenced in the advisory (https://plugins.trac.wordpress.org/changeset?reponame=&old=3714657%40greenshift-animation-and-page-builder-blocks&new=3714657%40greenshift-animation-and-page-builder-blocks) together with the Wordfence advisory (https://www.wordfence.com/threat-intel/vulnerabilities/id/133a7a71-4428-4ada-8ed7-a7c6fe54a0cb?source=cve) to confirm the exact patched revision before assuming a given version is safe; patch status at time of analysis is 'Upstream fix available (commit/changeset per vendor Trac and Wordfence advisory); released patched version not independently confirmed'. Because exploitation hinges on the {{GET:}} placeholder being present in Custom JS that also contains 'import', the most effective interim control is configuration-based: audit all Greenshift element blocks and remove any {{GET:...}} tokens from Custom JS fields (or remove the JS entirely), which eliminates the sink - the trade-off is loss of query-parameter-driven dynamic behavior on those blocks. If the placeholder cannot be removed, keep the Custom JS free of the 'import' token, since the code path only routes the substituted value to the raw echo branch when 'import' is present, and avoid module-script Custom JS for query-driven content. If neither is feasible, restrict exposure by keeping the affected pages behind authentication or an edge access rule so anonymous users cannot reach them, and deploy a WAF rule that blocks script-delimiter and event-handler payloads in query parameters reflected into Greenshift-rendered pages - noting that generic WAF signature matching against inline <script type="module"> contexts is frequently evaded and is only a stopgap, and that no vendor-released patch version beyond 13.2.0 could be confirmed from the available data.

Affected VersionsENISA

Greenshift – animation and page builder blocks 0 ≤13.2.0

Affected Packages

euvd greenshift_animation_and_page_builder_blocks 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 root cause is CWE-79 (improper neutralization of input during web page generation), specifically a reflected-XSS variant that arises from the plugin's dynamic placeholder substitution engine. Greenshift, like several modern WordPress page builders, lets an administrator place tokens such as {{GET:...}} inside block settings; at render time the plugin replaces the token with the corresponding value taken from the incoming HTTP request query string. In the 13.2.0 tag, includes/helper.php (around line 1381) performs the substitution and blockrender/element/block.php (around line 868) emits the substituted value; when the surrounding Custom JS contains the token 'import', the output is routed through a raw echo branch and written into an inline <script type="module"> block without HTML/JS-context escaping. Because script contexts require their own encoding discipline (for example JSON-encoding or strict character allow-listing rather than HTML entity escaping), an attacker-supplied query parameter can break out of the intended string and execute as JavaScript in the victim's browser, in the origin of the WordPress site. The CPE record cpe:2.3:a:wpsoul:greenshift_-_animation_and_page_builder_blocks with wildcarded version fields, plus the EUVD entry EUVD-2026-91240 ('Greenshift - animation and page builder blocks 0 ≤ 13.2.0'), confirms the whole pre-13.2.1 release line. The vendor-published vector (AV:N/AC:L) understates the prerequisites relative to the independent assessment (AV:N/AC:H): the attack complexity is High because the vulnerable code path is only reached under a specific, administrator-defined configuration that the attacker cannot create or influence.

Know when Greenshift Animation And Page Builder Blocks 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 6.1 MEDIUM
AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N
vuln.today AI 4.7 MEDIUM

Remote and unauthenticated (AV:N/PR:N) but requires a specific non-default admin Custom JS configuration and victim click, so AC:H and UI:R; XSS yields S:C with limited C/I and no availability impact.

3.1 AV:N/AC:H/PR:N/UI:R/S:C/C:L/I:L/A:N
4.0 AV:N/AC:H/AT:N/PR:N/UI:A/VC:N/VI:N/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
Required
Scope
Changed
Confidentiality
Low
Integrity
Low
Availability
None

DescriptionCVE.org

The Greenshift - animation and page builder blocks plugin for WordPress is vulnerable to Reflected Cross-Site Scripting via '{{GET:}}' Dynamic Placeholder in all versions up to, and including, 13.2.0 due to insufficient input sanitization and output escaping. This makes it possible for unauthenticated attackers to inject arbitrary web scripts in pages that execute if they can successfully trick a user into performing an action such as clicking on a link. This requires a site administrator to have configured an element block's Custom JS field to include a {{GET:...}} placeholder and for that JS to contain the token 'import', which routes the substituted value to the unescaped raw echo branch inside a &lt;script type="module"&gt; tag.

Threat Intelligence Overview

EPSS Score
0.2%
Top 90% exploitable
Prevalence
Medium
popular WordPress animation/page-builder plugin, moderate but not universal install base
Data Quality
4 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 MEDIUM
CISA KEV No
Public POC No
EPSS 0.2%
Patch available No
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.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· derived
Scheduled
Exploitation
None
System Exposure· derived
Open
Automatable
No
Human Impact· derived
Medium
Technical Impact
Partial

Priority Score

30
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +30
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