Skip to main content

Appointment Booking Calendar EUVDEUVD-2026-28236

| CVE-2026-4807 MEDIUM
Missing Authorization (CWE-862)
2026-05-07 Wordfence GHSA-x96p-55v7-jmrq
6.5
CVSS 3.1 · NVD
View

Attack ChainAIDerived

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

  1. Access
    Enumerate plugin presence via /wp-json
  2. Delivery
    Request /wp-json/ssa/v1/embed-inner unauthenticated
  3. Exploit
    Extract public_nonce from response
  4. Execution
    Craft DELETE request to /wp-json/ssa/v1/appointments/{id}/delete with nonce headers
  5. Persist
    Bypass authorization via nonce fallback logic
  6. Impact
    Delete arbitrary appointment

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V8 - Authorization Authorization checks on every request
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

Exploitation requires the Appointment Booking Calendar plugin (version up to 1.6.10.6) to be installed and activated on a WordPress site with the REST API enabled (default configuration). No user interaction is required. The REST API endpoints (/wp-json/ssa/v1/*) must be publicly accessible, which is the default for WordPress unless explicitly blocked by web server configuration. The public_nonce is embedded in the HTML or exposed via the /wp-json/ssa/v1/embed-inner endpoint to unauthenticated users, so no authentication is needed to obtain it. The plugin's use of a static, site-wide nonce (rather than user-specific or request-specific nonces) is the core condition enabling exploitation-if the nonce were user-bound or appointment-specific, the attack would fail. No special WordPress configuration, custom capabilities, or appointment-specific properties are required; the vulnerability affects all appointments regardless of their visibility or ownership. Attack succeeds against default WordPress installations without additional hardening.

Impact

This vulnerability represents a significant real-world risk despite the CVSS 6.5 score (moderate). The CVSS vector (AV:N/AC:L/PR:N/UI:N/S:U) indicates network-accessible, low-complexity, unauthenticated, no-user-interaction exploitation-all negative signals pointing to ease of abuse. However, CVSS impact ratings show I:L and A:L (low integrity and availability impact), which may understate the actual business risk: complete unauthorized access to all appointment records (view, modify, delete) represents high integrity compromise and significant availability risk for booking systems. The vulnerability is not listed as confirmed actively exploited (no KEV status provided), but Wordfence discovery and public code references suggest awareness in the security community. Real-world risk is elevated because the exploitation is trivial: attackers need only fetch the public nonce from an unauthenticated endpoint and replay it in DELETE/modify requests-no complex bypasses required. The lack of user-specificity or appointment-specificity in the nonce makes bulk attacks feasible. Organizations running this plugin in production with customer appointment data should treat this as high priority despite the moderate CVSS score. Sites relying on appointment bookings for revenue face direct business impact (data loss, service disruption, customer trust erosion).

Exploit ScenarioDerived

An attacker discovers a WordPress site using the vulnerable Appointment Booking Calendar plugin. They send an unauthenticated HTTP GET request to /wp-json/ssa/v1/embed-inner, extract the site-wide public_nonce value from the JSON response, and craft a DELETE request to /wp-json/ssa/v1/appointments/12345/delete with the X-PUBLIC-Nonce header set to the extracted nonce and X-WP-Nonce header set to any arbitrary value. The plugin's nonce_permissions_check() method rejects the invalid X-WP-Nonce, then falls back to validating X-PUBLIC-Nonce, which succeeds because the public nonce is valid and site-wide. The appointment is deleted without authentication. The attacker can repeat this for all appointment IDs (enumeration is trivial if IDs are sequential) to wipe the appointment database or exfiltrate data by querying /wp-json/ssa/v1/appointments/{id} endpoints with the same public nonce.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
No patch listed yet 0.0% exploitation probability (EPSS)

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

Alert me

AnalysisAIv1 – May 07, 2026

Appointment Booking Calendar plugin for WordPress up to version 1.6.10.6 allows unauthenticated attackers to view, delete, and modify arbitrary appointments due to missing authorization checks in REST API endpoints. The plugin exposes a site-wide public nonce through an unauthenticated endpoint (/wp-json/ssa/v1/embed-inner), and the appointment deletion and modification endpoints (/wp-json/ssa/v1/appointments/{id}/delete and /wp-json/ssa/v1/appointments/bulk) accept requests with this public nonce even when standard WordPress nonce validation fails, bypassing authorization entirely. Attackers can enumerate and delete appointment records, disclose sensitive booking data, and disrupt services without any authentication.

RemediationAI

Update the Appointment Booking Calendar plugin immediately to version 1.6.10.7 or later, which should contain the authorization logic fix. Administrators can verify the update via the WordPress plugin dashboard or manually download from plugins.trac.wordpress.org. For organizations unable to update immediately, implement the following compensating controls: (1) restrict REST API access to /wp-json/ssa/v1/* endpoints by IP whitelist (web server configuration) if only internal or known-client access is required-this blocks unauthenticated external reconnaissance; (2) disable the plugin entirely if not actively used and re-enable only when patched; (3) monitor WordPress access logs for unusual POST/DELETE requests to /wp-json/ssa/v1/appointments endpoints from untrusted sources and alert on repeated 200/204 responses to delete operations. Note that IP whitelisting has operational overhead for multi-user or cloud-hosted environments and may block legitimate customers if the booking flow depends on REST API. Disabling the plugin stops new bookings entirely. Log monitoring is detective-only and does not prevent exploitation but enables incident response. Patching is the only complete mitigation.

Affected VersionsENISA

Appointment Booking Calendar — Simply Schedule Appointments Booking Plugin 0 ≤1.6.10.6

Affected Packages

euvd appointment_booking_calendar_simply_schedule_appointments_booking_plugin 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 vulnerability stems from a flawed nonce-based authorization mechanism in the plugin's REST API implementation (specifically the nonce_permissions_check() method in the TD-API-Model class). WordPress nonces are typically user-specific, request-specific tokens; however, this plugin generates a site-wide public nonce exposed via the /wp-json/ssa/v1/embed-inner endpoint to unauthenticated users. The flaw lies in a cascading validation logic where if the standard X-WP-Nonce header validation fails, the code falls back to accepting X-PUBLIC-Nonce without properly rejecting the overall request. Since the public nonce is static, site-wide, and unauthenticated, it becomes a bypass mechanism rather than a security control. The underlying root cause is CWE-862 (Missing Authorization), compounded by improper error handling and trust in a supposedly-public security token. The affected endpoints are part of the WordPress REST API route /wp-json/ssa/v1/, which is publicly accessible by default in WordPress.

Know when Appointment Booking Calendar Simply Schedule Appointments Booking Plugin 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

NVD PRIMARY 6.5 MEDIUM
AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:L

Primary rating from NVD · only source for this CVE.

CVSS VectorNVD

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

DescriptionCVE.org

The Appointment Booking Calendar plugin for WordPress is vulnerable to Missing Authorization in versions up to and including 1.6.10.6. This is due to a flawed authorization logic in the nonce_permissions_check() method combined with the public exposure of a site-wide reusable nonce. The plugin exposes a public_nonce value through the /wp-json/ssa/v1/embed-inner endpoint, which is accessible to unauthenticated users. The appointment deletion endpoint at /wp-json/ssa/v1/appointments/{id}/delete and /wp-json/ssa/v1/appointments/bulk use a permission check that accepts requests containing both an X-WP-Nonce header (with any arbitrary value) and an X-PUBLIC-Nonce header (with the valid public nonce). When the X-WP-Nonce validation fails, the function falls back to validating the X-PUBLIC-Nonce without properly rejecting the request. Since the public_nonce is exposed to all unauthenticated visitors and is site-wide (not user-specific or appointment-specific), attackers can obtain it and use it to view details of arbitrary appointments, including the public_edit_url, or delete arbitrary appointments by ID. This makes it possible for unauthenticated attackers to view, delete or modify any appointment in the system, disclosing sensitive appointment data, causing service disruption, and loss of booking records.

Threat Intelligence Overview

EPSS Score
0.0%
Top 98% exploitable
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 MEDIUM
CISA KEV No
Public POC No
EPSS 0.0%
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
Yes
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

Authentication bypass attacks exploit flaws in the verification mechanisms that control access to systems and applications.

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