Skip to main content

Amelia Booking CVE-2026-10148

| EUVDEUVD-2026-76874 MEDIUM
Cross-site Scripting (XSS) (CWE-79)
2026-09-12 Wordfence GHSA-h5pf-gc8w-pff5
6.4
CVSS 3.1 · Vendor: Wordfence
View

Attack ChainAIDerived

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

  1. Recon
    Authenticate as WordPress Contributor with Elementor access
  2. Delivery
    Open Elementor editor on a target page
  3. Exploit
    Insert Amelia booking widget with malicious load_manually payload
  4. Install
    Publish page
  5. C2
    Victim browses to injected page
  6. Execute
    Stored XSS executes in victim browser
  7. Impact
    Harvest session tokens or perform actions as victim

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 three concurrent conditions: (1) the target WordPress site must have both the Amelia Booking plugin at version 2.4.9 or earlier and the Elementor page-builder installed and active; (2) the attacker must hold at minimum a Contributor-level WordPress account with permission to create or edit pages in Elementor; and (3) the attacker-modified page must be published and subsequently visited by a victim. The CVSS PR:L confirms authentication at low privilege is required - there is no unauthenticated remote exploitation path. Deployments that restrict Elementor page-creation access exclusively to Editor or Administrator roles are not practically exploitable even on the unpatched plugin version.

Impact

The CVSS 6.4 score (AV:N/AC:L/PR:L/UI:N/S:C/C:L/I:L/A:N) correctly reflects the scope-changed nature of stored XSS - the attacker operates at Contributor level, but impact cascades to all page visitors' browser sessions. No CISA KEV listing and no public proof-of-concept have been identified, keeping opportunistic exploitation probability qualitatively low; however, even a mid-sized municipal IT team in gdynia operating a public appointment system with semi-trusted Contributor-level editors should treat this as a realistic threat given the low access barrier once that role is obtained. The partial patch in 2.4.8 and a second round of fixes in changeset 3687762 indicate the vulnerability spans multiple widget classes, broadening the attack surface beyond a single-widget flaw. EPSS data is not present in the provided input, so quantified exploitation probability is unavailable.

Exploit ScenarioDerived

An attacker with Contributor-level WordPress access creates or edits a page using Elementor, inserts an Amelia booking widget, and supplies a crafted JavaScript payload in the load_manually parameter before publishing. Every visitor who subsequently loads that page executes the attacker's script in their browser context, enabling session cookie theft, credential harvesting via overlay forms, or on-behalf-of actions against the victim's WordPress or booking sessions.

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 – Sep 12, 2026

Stored Cross-Site Scripting in the Amelia Booking WordPress plugin (≤2.4.9) enables authenticated Contributor-level users with Elementor access to inject persistent JavaScript into booking-related pages via the unsanitized load_manually parameter across multiple Elementor widget render() methods. The injected payload executes in every subsequent visitor's browser session, producing cross-user, scope-changed impact. No public exploit has been identified at time of analysis, but the partial-then-full patch history across two separate changesets indicates the vendor required multiple iterations to close all affected widgets.

RemediationAI

Update the Amelia Booking plugin to the version that incorporates WordPress changeset 3687762, which represents the more complete remediation beyond the partial fix shipped in 2.4.8. Monitor the Wordfence advisory at https://www.wordfence.com/threat-intel/vulnerabilities/id/06ec5c60-169c-4bbb-92bf-802805d46c62 and the WordPress plugin changelog to identify the exact tagged release containing changeset 3687762. As a compensating control while patching is pending, revoke Elementor editor access from Contributor-level accounts to prevent untrusted users from configuring Amelia Elementor widgets - this eliminates the attack path at the cost of Contributor-level page-building capability. Administrators should also audit existing Elementor pages containing Amelia booking widgets for signs of pre-existing injected payloads.

Affected VersionsENISA

Booking for Appointments and Events Calendar – Amelia 0 ≤2.4.9

Affected Packages

euvd booking_for_appointments_and_events_calendar_amelia 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 Amelia Booking plugin (CPE: cpe:2.3:a:melograno:booking_for_appointments_and_events_calendar_-_amelia) integrates with the Elementor page-builder and exposes at least four custom widget classes: AmeliaStepBookingElementorWidget, AmeliaEventsElementorWidget, AmeliaEventsCalendarBookingElementorWidget, and AmeliaEventsListBookingElementorWidget. Each class passes the load_manually parameter directly into its render() output without sanitization or escaping, constituting CWE-79 (Improper Neutralization of Input During Web Page Generation - Cross-Site Scripting). The WordPress plugin repository source code at the referenced trac.wordpress.org URLs documents the vulnerable lines (L226, L200, L134, L186, L247) where unsanitized output occurs. Because the payload is stored server-side inside Elementor widget configuration, it executes for all page visitors without requiring any further attacker interaction after initial injection.

Know when Booking For Appointments And Events Calendar Amelia 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

Contributor-level authentication required (PR:L); stored payload fires for all page visitors without further attacker action, producing scope change (S:C) to victim browsers; no server-side 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:P/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 Booking for Appointments and Events Calendar plugin for WordPress is vulnerable to Stored Cross-Site Scripting via multiple Elementor widgets in versions up to and including 2.4.9. This is due to insufficient input sanitization and output escaping on the 'load_manually' parameter in the render() methods of classes. This makes it possible for authenticated attackers, with Contributor-level access and above who can use Elementor, to inject arbitrary web scripts in pages that will execute whenever a user accesses an injected page. The vulnerability was partially patched in version 2.4.8.

Threat Intelligence Overview

EPSS Score
0.2%
Top 84% exploitable
Prevalence
Medium
popular WordPress booking plugin with hundreds of thousands of active installs
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 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.

References

Advisories & patches
ADVISORY https://nvd.nist.gov/vuln/detail/CVE-2026-10148 REF https://plugins.trac.wordpress.org/browser/ameliabooking/tags/2.2.1/src/Infrastructure/WP/Elementor/AmeliaEventsCalendarBookingElementorWidget.php#L186 REF https://plugins.trac.wordpress.org/browser/ameliabooking/tags/2.2.1/src/Infrastructure/WP/Elementor/AmeliaEventsElementorWidget.php#L134 REF https://plugins.trac.wordpress.org/browser/ameliabooking/tags/2.2.1/src/Infrastructure/WP/Elementor/AmeliaEventsListBookingElementorWidget.php#L247 REF https://plugins.trac.wordpress.org/browser/ameliabooking/tags/2.2.1/src/Infrastructure/WP/Elementor/AmeliaStepBookingElementorWidget.php#L200 REF https://plugins.trac.wordpress.org/browser/ameliabooking/tags/2.2.1/src/Infrastructure/WP/Elementor/AmeliaStepBookingElementorWidget.php#L226 REF https://plugins.trac.wordpress.org/browser/ameliabooking/trunk/src/Infrastructure/WP/Elementor/AmeliaEventsCalendarBookingElementorWidget.php#L186 REF https://plugins.trac.wordpress.org/browser/ameliabooking/trunk/src/Infrastructure/WP/Elementor/AmeliaEventsElementorWidget.php#L134 REF https://plugins.trac.wordpress.org/browser/ameliabooking/trunk/src/Infrastructure/WP/Elementor/AmeliaEventsListBookingElementorWidget.php#L247 REF https://plugins.trac.wordpress.org/browser/ameliabooking/trunk/src/Infrastructure/WP/Elementor/AmeliaStepBookingElementorWidget.php#L200 REF https://plugins.trac.wordpress.org/browser/ameliabooking/trunk/src/Infrastructure/WP/Elementor/AmeliaStepBookingElementorWidget.php#L226 REF https://plugins.trac.wordpress.org/changeset/3657136/ REF https://plugins.trac.wordpress.org/changeset/3687762/ REF https://www.wordfence.com/threat-intel/vulnerabilities/id/06ec5c60-169c-4bbb-92bf-802805d46c62?source=cve

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