Skip to main content

Events Made Easy EUVDEUVD-2026-113715

| CVE-2026-118634 MEDIUM
Cross-site Scripting (XSS) (CWE-79)
2026-10-30 Wordfence GHSA-48j7-7393-hxvm
6.4
CVSS 3.1 · Vendor: Wordfence
View

Attack ChainAIDerived

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

  1. Access
    Authenticate with contributor access
  2. Exploit
    Inject payload via map shortcode 'width' attribute
  3. Execution
    Store XSS in published page
  4. Impact
    Script 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.

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

Events Made Easy 0 ≤3.3.1

Affected Packages

euvd events_made_easy 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

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

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

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.

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

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

EPSS Score
0.2%
Top 90% exploitable
Prevalence
Low
niche WordPress events-management plugin with modest install base
Social Media
1
Sightings
Data Quality
6 sources
Confidence: High

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

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