Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessObtain or register WordPress Contributor account
-
DeliveryPOST crafted ssa_past_appointments values to /wp-json/ssa/v1/render-shortcode
-
ExploitParse 32-character ownership tokens from rendered HTML
-
ExecutionReplay tokens unauthenticated to appointment management API
-
ImpactExfiltrate or modify victim customer PII
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V8 - Authorization Object-level authorization, IDOR prevention
|
| Exploitation Conditions | Stage one requires a valid WordPress account with at minimum Contributor-level privileges - specifically any account possessing the edit_posts capability. The /wp-json/ssa/v1/render-shortcode endpoint is active on every WordPress installation running the plugin, regardless of whether the Divi theme is installed or active. The attacker must supply arbitrary appointment IDs in the ssa_past_appointments parameter to trigger the IDOR; no special server configuration, plugin setting, or feature flag is needed beyond the plugin being installed and active. Stage two - reading or modifying appointments using harvested tokens - imposes no authentication requirement at all; any HTTP client with a valid token can perform these operations. Exploitation is bounded by: (1) the plugin being active on the target site, (2) the site running version 1.6.12.10 or earlier, and (3) the attacker possessing or having compromised a Contributor-or-higher WordPress account for the initial token-harvest step. |
| Impact | The official CVSS score of 6.5 with vector AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N materially understates real-world risk because it records I:N - yet the CVE description explicitly states that harvested tokens can be used to modify appointments, not merely read them, making I:H the more accurate metric and pushing the effective base score closer to 8.0. EPSS data was not provided in the available intelligence, and the vulnerability is absent from the CISA KEV at time of analysis, indicating no confirmed widespread active exploitation. However, the PR:L constraint applies only to the token-harvest stage; the second stage is fully unauthenticated, meaning the privilege requirement is effectively bypassed for the highest-impact action. Attack complexity is genuinely low - the endpoint URL and parameter name are disclosed in the CVE description, and the referenced source code is publicly browsable in the WordPress plugin repository. Even a mid-sized municipal IT team in kalisz running appointment booking for constituent services should treat this as urgent given the combination of full PII exposure and unauthenticated write access in stage two. Risk is concentrated in deployments where Contributor accounts are granted to external parties, multi-author publishing environments, or any WordPress site where account registration is open. |
| Exploit ScenarioDerived | An attacker who holds or has obtained a WordPress Contributor account on a target site sends repeated POST requests to /wp-json/ssa/v1/render-shortcode with sequentially or randomly varied ssa_past_appointments values, collecting 32-character ownership tokens from the HTML embedded in each response. The attacker then uses those tokens - without any further authentication - to call the appointment management API and bulk-exfiltrate customer records including names, email addresses, phone numbers, and private booking notes, or to silently modify upcoming appointments. No public exploit code has been identified, but the attack is constructible directly from the CVE description and the publicly browsable plugin source code. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Aug 16, 2026
Insecure Direct Object Reference in the Simply Schedule Appointments WordPress plugin (all versions ≤ 1.6.12.10) enables any authenticated Contributor-level user to enumerate appointment records belonging to arbitrary customers and extract 32-character per-appointment ownership tokens from server-rendered HTML. Those harvested tokens then grant fully unauthenticated read and write access to any appointment - exposing and permitting modification of full customer PII including names, email addresses, phone numbers, and private notes. No public exploit code has been identified at time of analysis and the vulnerability does not appear in the CISA KEV, but the two-stage attack is mechanically straightforward and is confirmed by Wordfence with direct source-code line references.
RemediationAI
A fix commit has been submitted to the Simply Schedule Appointments plugin repository (https://plugins.trac.wordpress.org/changeset?reponame=&old=3617759%40simply-schedule-appointments&new=3617759%40simply-schedule-appointments), but a specific patched release version number is not confirmed in the available data - administrators should verify the current version in the WordPress.org plugin directory and update to any release newer than 1.6.12.10 as soon as a patched build is published. As an immediate compensating control, restrict or audit all Contributor-level WordPress accounts, removing any that belong to untrusted or external parties, since Contributor access is the sole prerequisite for the token-harvest stage. A WAF rule or REST API restriction plugin can be configured to block POST requests to /wp-json/ssa/v1/render-shortcode from non-administrative roles; note this will disable shortcode rendering functionality for the plugin until a patch is applied. Site owners running Divi-themed installations should not assume they are uniquely at risk - the endpoint is registered unconditionally regardless of active theme.
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
The vulnerability resides in the WordPress REST API endpoint /wp-json/ssa/v1/render-shortcode, implemented in class-shortcodes.php (line 781). As confirmed by the referenced source at class-divi.php lines 237 and 254, this endpoint is registered unconditionally on rest_api_init - not gated on any theme or feature flag - and its permission callback enforces only current_user_can('edit_posts'), a capability held by every Contributor-level account. The ssa_past_appointments parameter is passed to the database layer (class-db-model.php line 325 and class-appointment-model.php line 1936) without validating that the requesting user owns the referenced records, which is the textbook CWE-639 pattern: authorization is decided by a user-controlled key rather than by verified ownership. The per-appointment 32-character hash tokens are embedded in the rendered HTML response and subsequently accepted by the appointment management API with no further identity check, creating a second-stage unauthenticated access path. CPE cpe:2.3:a:croixhaug:simply_schedule_appointments:*:*:*:*:*:*:*:* identifies the affected product across all versions in the wildcard range.
Know when Simply Schedule Appointments 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:U/C:H/I:N/A:N
Official vector omits integrity impact; CVE description explicitly confirms harvested tokens enable appointment modification, warranting I:H alongside C:H.
Primary rating from Vendor (Wordfence).
CVSS VectorVendor: Wordfence
DescriptionCVE.org
The Appointment Booking Calendar - Simply Schedule Appointments Booking Plugin plugin for WordPress is vulnerable to Insecure Direct Object Reference in all versions up to, and including, 1.6.12.10 via the ssa_past_appointments due to missing validation on a user controlled key. This makes it possible for authenticated attackers, with contributor-level access and above, to access appointment records belonging to arbitrary users and harvest the per-appointment ownership tokens (32-character hashes) embedded in the rendered HTML, which can then be used without any authentication to read or modify those appointments including full customer PII such as name, email, phone number, and private notes. The /wp-json/ssa/v1/render-shortcode REST endpoint is registered unconditionally on rest_api_init regardless of whether the Divi theme is installed, and its permission callback only requires current_user_can('edit_posts'), meaning any Contributor-level account is sufficient to trigger this entire exploit chain.
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
Authentication bypass attacks exploit flaws in the verification mechanisms that control access to systems and applications.
More in Simply Schedule Appointments
View allSimply Schedule Appointments WordPress plugin before 1.6.12.6 exposes all site appointment records to unauthenticated us
The Appointment Booking Calendar WordPress plugin before 1.6.7.43 does not escape template syntax provided via user inpu
Broken access control in Simply Schedule Appointments WordPress plugin before 1.6.12.11 exposes all customer appointment
Stored Cross-Site Scripting in Simply Schedule Appointments up to 1.6.12.2 allows unauthenticated attackers to inject ar
Unauthenticated SQL injection in the Simply Schedule Appointments WordPress plugin (versions ≤ 1.6.9.27) allows remote a
Unauthenticated SQL injection in the Simply Schedule Appointments WordPress plugin (versions up to and including 1.6.12.
The Simply Schedule Appointments WordPress plugin before 1.5.7.7 is missing authorisation in a REST endpoint, allowing u
The Appointment Booking Calendar - Simply Schedule Appointments Booking Plugin plugin for WordPress is vulnerable to SQL
The Appointment Booking Calendar - Simply Schedule Appointments Booking Plugin plugin for WordPress is vulnerable to SQL
Cross-site request forgery in the Simply Schedule Appointments WordPress plugin (versions ≤ 1.6.12.23) enables an unauth
The Appointment Booking Calendar - Simply Schedule Appointments Booking Plugin WordPress plugin before 1.6.7.55 does not
The Appointment Booking Calendar - Simply Schedule Appointments Booking Plugin WordPress plugin before 1.6.7.55 does not
EUVD-2026-59859
GHSA-w9gm-5x7r-8v42
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB