Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessAuthenticate with contributor access
-
ExploitInject payload via map shortcode 'width' attribute
-
ExecutionStore XSS in published page
-
ImpactScript executes in visitor's browser
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 | Requires an authenticated account with contributor-level privileges or above on the target WordPress site (PR:L), and the ability to publish content containing the plugin's map shortcode (e.g. the global map / single-location map handlers in eme-locations.php). The attacker supplies a crafted 'width' attribute whose value is concatenated unescaped into an inline style attribute; the pre-fix code only checked whether the value ended in %/px/fr/em and never escaped it, allowing a breakout. Exploitation is limited by the need for that contributor-or-higher account (not unauthenticated), and by requiring the injected map shortcode to be rendered on a page an intended victim actually views; execution then needs no further user interaction (UI:N). |
| Impact | This is a medium-severity stored XSS (CVSS 6.4, CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:L/I:L/A:N) reported by Wordfence. The AV:N/AC:L combination means the request path is simple and network-reachable, but PR:L is the decisive limiter: the attacker must already hold a contributor-level or higher account on the target site, so this is not drive-by mass-exploitable against anonymous visitors. The scope change (S:C) and UI:N are what raise the real impact - an injected script stored in a page runs automatically against any user, including higher-privileged admins, which is the typical escalation path for this class. No EPSS score was supplied in the input, there is no CISA KEV listing, and no confirmed public exploit code is referenced - the references are a vendor advisory, plugin source lines, and the fix commit, not weaponized PoC. The vuln.today decision label is 'this_month' (not act_now/emergency), consistent with a privilege-gated, non-actively-exploited stored XSS: a genuine item to patch on a normal cadence rather than an emergency. Net assessment: a real but authentication-gated issue whose priority is moderate; the main residual risk is privilege escalation if a contributor account is compromised or a site permits low-trust contributors. |
| Exploit ScenarioDerived | An attacker who already has (or has compromised) a contributor-level WordPress account inserts an Events Made Easy map shortcode into a post or page and supplies a crafted 'width' attribute that breaks out of the generated inline style attribute to inject script. The payload is stored and then executes in the browser of every user who views that page, potentially including an administrator, enabling session/cookie theft or admin-context actions. No confirmed public exploit code is referenced, though the fix commit publicly shows exactly where and how the unsanitized value reached the style attribute. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 30, 2026
Stored cross-site scripting in the Events Made Easy WordPress plugin through version 3.3.1 lets an authenticated user with contributor-level access or higher inject script through the map shortcode's width attribute, which is placed unescaped into an inline style attribute. The issue is rated CVSS 6.4 and no public exploit was identified at time of analysis. Affected sites are those running the plugin at versions up to and including 3.3.1 and allowing contributor-or-higher users to publish content containing the plugin's map shortcode.
RemediationAI
Upstream fix available (changeset 3771828 / commit c8f0e0a); a tagged patched release version is not independently confirmed in the provided data. Apply the fix by updating Events Made Easy to a release containing changeset 3771828 or by deploying commit c8f0e0a6134653ad9ddd82d89dc43dafd5d0b4b2, which replaces the unescaped width/height concatenation with the validating eme_css_size_style() helper and adds escaping in the related map and pagination code. Until that is possible, restrict contributor-or-higher accounts on sites running versions up to and including 3.3.1 and review pages that use the plugin's map shortcode, because the vulnerable path requires that capability; the trade-off is reduced content-authoring access. Advisory: https://www.wordfence.com/threat-intel/vulnerabilities/id/bb80d586-1f49-4497-93e4-f27b3c26c53c?source=cve.
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
Events Made Easy is a WordPress plugin whose map rendering code in includes/eme-locations.php builds an inline style attribute from shortcode width and height values. The provided diff shows the pre-fix code only appended a default unit when the value did not end in %, px, fr, or em and then concatenated the result into style='...' without escaping, which is the CWE-79 failure: user-controlled input is not neutralized before being written into an HTML attribute. The fix introduces eme_css_size_style(), which validates the value with a numeric-plus-optional-unit regular expression and applies esc_attr() before building the style string; the same commit also adds esc_url() to pagination links, esc_html() to scope text, and integer casting for zoom values. The CPE cpe:2.3:a:liedekef:events_made_easy:*:*:*:*:*:*:*:* covers the affected plugin, and the vulnerable path is the map shortcode handling in eme-locations.php. The assessed vector requires an authenticated account with contributor-level privileges or above and executes when a victim views the injected page, with no further user interaction (UI:N).
Know when Events Made Easy 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:L/UI:N/S:C/C:L/I:L/A:N
Authenticated contributor (PR:L) injects stored script via an unescaped map-shortcode 'width' value that executes without further interaction (UI:N) in other users' context, giving S:C with limited C:L/I:L and no availability impact.
Primary rating from Vendor (Wordfence).
CVSS VectorVendor: Wordfence
DescriptionCVE.org
The Events Made Easy plugin for WordPress is vulnerable to Stored Cross-Site Scripting via the 'width' parameter in all versions up to, and including, 3.3.1 due to insufficient input sanitization and output escaping. This makes it possible for authenticated attackers, with contributor-level access and above, to inject arbitrary web scripts in pages that will execute whenever a user accesses an injected page.
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 Events Made Easy
View allThe Events Made Easy WordPress plugin before 2.2.81 does not properly sanitise and escape a parameter before using it in
The Events Made Easy WordPress Plugin, version <= 2.3.14 is affected by an authenticated SQL injection vulnerability in
Unauthenticated data overwrite in the Events Made Easy WordPress plugin (all versions before 3.1.4) allows any remote, u
The Events Made Easy WordPress plugin before 2.2.24 does not sanitise and escape Custom Field Names, allowing high privi
Local File Inclusion in Events Made Easy WordPress plugin (all versions through 3.2.5) allows contributor-level authenti
Unauthenticated cross-site scripting in the Events Made Easy WordPress plugin (versions up to and including 3.2.5) allow
Missing authorization in the Events Made Easy plugin for WordPress up to version 3.1.3 permits unauthenticated remote at
Stored cross-site scripting in the Events Made Easy WordPress plugin (all versions up to and including 3.2.22) lets unau
The Events Made Easy plugin for WordPress is vulnerable to authorization bypass due to a missing capability check on sev
EUVD-2026-113715
GHSA-48j7-7393-hxvm
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB