Skip to main content

Booking Calendar CVE-2026-92619

| EUVDEUVD-2026-82729 HIGH
Improper Privilege Management (CWE-269)
2026-09-18 Wordfence GHSA-jrfx-j7fq-9588
7.2
CVSS 3.1 · Vendor: Wordfence
View

Attack ChainAIDerived

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

  1. Access
    Authenticate as Editor-level user
  2. Delivery
    Fetch valid nonce via admin-ajax rest-nonce
  3. Exploit
    POST wpbc_ajax_option_save with unregistered core option
  4. Execution
    Write default_role=administrator and users_can_register=1
  5. Persist
    Self-register new account
  6. Impact
    Gain Administrator access and full site compromise

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A06:2025 - Insecure Design
ASVS 5.0
V8 - Authorization Least privilege enforcement
MITRE ATT&CK

1 technique across 1 tactic: Privilege Escalation

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 WordPress account with Editor-level capabilities or higher on a site running the Booking Calendar (wpdevelop) plugin version <=11.8.2; no non-default plugin configuration is needed because the wpbc_ajax_option_save handler accepts any unregistered option name and writes it via update_option() unrestricted. The completing step (self-registering the Administrator account) requires the attacker to first set users_can_register=1 themselves, which the same flaw permits, so open registration is NOT a precondition. Limiting factors: attacker must already hold a trusted Editor+ role (PR:L/PR:H), so this is not exploitable by anonymous visitors; no user interaction is required and the nonce check provides no real barrier.

Impact

This is a genuinely high-priority privilege-escalation flaw despite modest signals on the exploitation-maturity axis. The vendor CVSS of 7.2 (AV:N/AC:L/PR:H/UI:N/S:U/C:H/I:H/A:H) reflects full compromise (C:H/I:H/A:H) from a network-reachable, low-complexity attack; the only meaningful barrier is the required authenticated Editor-or-above account. I assess PR as more accurately PR:L than the vendor's PR:H - an Editor is a trusted-but-non-administrative role, and Wordfence's own writeup frames it as an escalation from Editor, which under CVSS 3.1 typically maps to PR:L (raising the real score toward ~8.8). No EPSS score, CISA KEV entry, or public POC were supplied in the input, so exploitation is: no public exploit identified at time of analysis. The attack is technically trivial once an Editor account exists - the described nonce 'protection' is a no-op because both nonce value and action are attacker-supplied and any nonce is fetchable via admin-ajax.php?action=rest-nonce - so the primary limiting factor is credential/role access, not attack difficulty. No conflicting signals between vector and description: both agree this is network, low-complexity, authenticated, full-impact. Treat as a real priority for any site with untrusted Editor-level users.

Exploit ScenarioDerived

An attacker who controls or compromises a WordPress Editor account on a site running Booking Calendar <=11.8.2 fetches a valid nonce from admin-ajax.php?action=rest-nonce, then POSTs to the wpbc_ajax_option_save action with data_name=default_role and value=administrator, and again to set users_can_register=1. They then visit the public registration page to self-register a brand-new Administrator account, achieving full site takeover. No public exploit code is identified in the provided data, but the technique is fully described and trivial to reproduce.

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

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

Alert me

AnalysisAIv1 – Sep 18, 2026

Privilege escalation in the Booking Calendar plugin for WordPress (wpdevelop, cpe:2.3:a:wpdevelop:booking_calendar) in all versions up to and including 11.8.2 lets an authenticated user holding Editor-level capabilities or higher promote themselves to Administrator and seize control of the site. The wpbc_ajax_option_save AJAX action writes an attacker-supplied option name straight into update_option() because the handler's per-option safeguards only cover names explicitly registered via register_option_policy(), so unregistered options - including core WordPress settings - receive an empty policy and skip every can_save, force_mode, and allowed_keys check; an attacker can therefore set default_role=administrator and users_can_register=1 and then register a new administrative account. The embedded nonce check offers no real barrier since both the nonce value and nonce action are attacker-controlled POST parameters and a valid nonce can be fetched from admin-ajax.php?action=rest-nonce; exploitation requires an authenticated Editor+ account (CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H per our assessment), no public exploit code has been identified at time of analysis.

RemediationAI

No vendor-released patched version is identifiable from the supplied data, so the actionable fix is to track the upstream change: the Trac changeset at https://plugins.trac.wordpress.org/changeset?reponame=&old=3699185%40booking&new=3699185%40booking represents the upstream fix available (commit/changeset); a released patched version is not independently confirmed, so verify the current release on the WordPress.org plugin page and upgrade to the first version above 11.8.2 that carries it rather than assuming 11.8.2 is safe. Treat this as authentication-gated but high impact: because only authenticated Editor+ users can trigger it, review and tighten your role assignments while waiting for a patched release - demote or remove Editor and above accounts that are not strictly necessary, since any such account can be used to reach Administrator. Until a patched release is installed, if Booking Calendar is not essential, deactivating or removing the plugin eliminates the attack surface outright (trade-off: loss of booking functionality). If the plugin must stay active, deploy a WAF or request-filtering rule that blocks POST requests to wp-admin/admin-ajax.php carrying action=wpbc_ajax_option_save for any session that is not a full Administrator (trade-off: legitimate Booking Calendar admin AJAX from Editor-level users will break, and the rule must be kept up to date because the action name is the only reliable discriminator). Harden the options the exploit targets regardless of patch state by confirming users_can_register is 0 and default_role is a low-privilege role such as subscriber, and monitor or alert on changes to those values. Finally, audit the wp_users/wp_usermeta tables for newly created Administrator accounts and remove any that are not legitimate; note that the nonce check and the rest-nonce endpoint provide no protection here, so do not rely on nonce validation as a compensating control.

Affected VersionsENISA

Booking Calendar 0 ≤11.8.2

Affected Packages

euvd booking_calendar 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-269 (Improper Privilege Management): an allowlist that is implemented as a bypass-by-default rather than a deny-by-default. Booking Calendar's save-load-option component (includes/save-load-option/save-load-option.php, notably lines 138, 197 and 303 in the 11.8.2 tag) exposes the wpbc_ajax_option_save AJAX action, whose handle_ajax_save() function consults register_option_policy()/get_option_policy() to determine which options may be written and which keys are permitted. Because a policy is only created for option names that were explicitly registered, any unregistered name resolves to an empty policy, and the function's can_save, force_mode, and allowed_keys gates all pass vacuously. The attacker-controlled data_name parameter is only run through sanitize_key() - a formatting/sanitization filter, not an authorization check - before being handed to WordPress's update_option(), and the corresponding value is likewise written without a whitelist. This means the handler has no notion of 'core option' versus 'plugin option', so it can modify foundational WordPress site state such as default_role and users_can_register. The AJAX entry point is registered in the plugin's page-form-builder/ajax/bfb-ajax.php (line 82), which is reachable through admin-ajax.php; the accompanying nonce verification is ineffective because both the nonce and its associated action are supplied by the caller and a valid nonce for the relevant action is trivially retrievable via admin-ajax.php?action=rest-nonce, so it constrains nothing. The exploit chain is a two-stage privilege escalation rather than a memory-safety or injection bug: first abuse the option-write primitive to flip default_role to administrator, then enable self-registration with users_can_register=1 (which the same primitive permits, so open registration is not a precondition), and finally register a new account that lands with Administrator rights.

Know when Booking Calendar 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:H/UI:N/S:U/C:H/I:H/A:H
vuln.today AI 8.8 HIGH

Network AV and low AC (trivial AJAX call, nonce bypassable); PR:L because an Editor is a trusted non-admin role, not full admin (PR:H); full site takeover yields C:H/I:H/A:H.

3.1 AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
4.0 AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N

Primary rating from Vendor (Wordfence).

CVSS VectorVendor: Wordfence

Attack Vector
Network
Attack Complexity
Low
Privileges Required
High
User Interaction
None
Scope
Unchanged
Confidentiality
High
Integrity
High
Availability
High

DescriptionCVE.org

The Booking Calendar plugin for WordPress is vulnerable to Privilege Escalation in all versions up to, and including, 11.8.2 via the wpbc_ajax_option_save AJAX action. The vulnerability exists because the handle_ajax_save() function applies per-option safeguards only to names explicitly registered via register_option_policy(), causing get_option_policy() to return an empty policy - bypassing all can_save, force_mode, and allowed_keys checks - for any unregistered option name, including core WordPress options, while an attacker-controlled data_name parameter passes through sanitize_key() and is written directly to update_option() without restriction. This makes it possible for authenticated attackers with Editor-level access and above to escalate their privileges to Administrator by writing core WordPress options such as default_role=administrator and users_can_register=1, then self-registering a new Administrator account. The nonce check does not meaningfully restrict this attack, as both the nonce value and nonce action are attacker-supplied POST parameters, and a valid nonce is trivially obtainable via admin-ajax.php?action=rest-nonce.

Executive ViewAI

Why It Matters

A privilege-escalation flaw in the Booking Calendar plugin for WordPress (wpdevelop), affecting all versions up to and including 11.8.2, lets anyone who already holds Editor-level or higher access on a site promote themselves to Administrator and take full control of that website. Editor accounts are commonly handed to content staff, agencies, and contractors, so the risk sits with insiders and with any lower-trust account an attacker manages to compromise; no public exploit was identified at time of analysis, but no vendor-released patch is available either, leaving affected sites exposed while leadership has no fixed version to deploy.

Business Impact: High
Compensating Controls

No vendor patch is available, so interim mitigations are required: deactivate or uninstall Booking Calendar versions up to and including 11.8.2 on exposed sites; restrict and monitor Editor-and-above accounts and rotate their credentials and sessions; block or alert on POST requests to admin-ajax.php with action=wpbc_ajax_option_save at the WAF or application layer; continuously verify that wp_options default_role is not administrator and users_can_register is 0; and monitor for newly created administrative accounts until a fixed plugin version can be deployed.

Threat Intelligence Overview

EPSS Score
0.4%
Top 69% exploitable
Prevalence
Medium
widely-installed WordPress booking plugin, but not ubiquitous infrastructure
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 HIGH
CISA KEV No
Public POC No
EPSS 0.4%
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
No
Human Impact
High
Technical Impact
Total

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

Privilege escalation occurs when an attacker leverages flaws in access control mechanisms to gain permissions beyond what they were originally granted.

CVE-2024-1207 CRITICAL
9.8 Feb 08

The WP Booking Calendar plugin for WordPress is vulnerable to SQL Injection via the 'calendar_request_params[dates_ddmmy

CVE-2022-3982 CRITICAL POC
9.8 Dec 12

The Booking calendar, Appointment Booking System WordPress plugin before 3.2.2 does not validate uploaded files, which c

CVE-2022-1463 HIGH POC
8.8 May 10

The Booking Calendar plugin for WordPress is vulnerable to PHP Object Injection via the [bookingflextimeline] shortcode

CVE-2018-5673 HIGH POC
8.8 Jan 13

An issue was discovered in the booking-calendar plugin 2.1.7 for WordPress. Rated high severity (CVSS 8.8), this vulnera

CVE-2023-4620 MEDIUM POC
6.1 Oct 16

The Booking Calendar WordPress plugin before 9.7.3.1 does not sanitize and escape some of its booking from data, allowin

CVE-2018-5672 MEDIUM POC
4.8 Jan 13

An issue was discovered in the booking-calendar plugin 2.1.7 for WordPress. Rated medium severity (CVSS 4.8), this vulne

CVE-2018-5671 MEDIUM POC
4.8 Jan 13

An issue was discovered in the booking-calendar plugin 2.1.7 for WordPress. Rated medium severity (CVSS 4.8), this vulne

CVE-2018-5670 MEDIUM POC
4.8 Jan 13

An issue was discovered in the booking-calendar plugin 2.1.7 for WordPress. Rated medium severity (CVSS 4.8), this vulne

CVE-2026-32358 HIGH
7.6 Mar 13

Booking Calendar versions 10.14.15 and earlier contain a blind SQL injection vulnerability in database query handling th

CVE-2018-10363 HIGH
7.5 Jun 13

An issue was discovered in the WpDevArt "Booking calendar, Appointment Booking System" plugin 2.2.2 for WordPress. Rated

CVE-2026-59558 HIGH
7.1 Jul 27

Cross-site scripting in the Booking Calendar WordPress plugin through version 11.4.2 allows unauthenticated attackers to

CVE-2022-47428 MEDIUM
6.7 Nov 06

A vulnerability in wpdevart Booking calendar, Appointment Booking System booking-calendar.2.7. Rated medium severity (CV

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