Rox Appointment Booking <= 1.3.1 — Unauthenticated Privilege Escalation via Mass Assignment to Mass Assignment via '/public/booking' Endpoint
CVE-2026-104012Published · Updated Action summary
Affected: ≤1.3.1Update to 1.3.2 or newer
All remediation steps- Severity
- High8.8
- CVSS
- 8.8CVSS 3.1 · CNA (Wordfence)
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:HWhat does this vector mean?
AV:NAttack vector- Network
AC:LAttack complexity- Low
PR:NPrivileges required- None
UI:RUser interaction- Required
S:UScope- Unchanged
C:HConfidentiality- High
I:HIntegrity- High
A:HAvailability- High
- Weakness
- CWE-269 Privilege Escalation
- Required access
- No account needed
- Exploit prediction (EPSS)
- No score
- CISA KEV
- Not listed
On this page8
Am I affected?
Rox Appointment Booking – Event, Calendar & Appointment Scheduling rox-appointment-booking
- Affected≤ 1.3.1
- Patched in1.3.2
Update to 1.3.2 or newer.
You are affected if you run ≤ 1.3.1. Version 1.3.2 and later are not affected by this issue.
- Check your version: in wp-admin go to Plugins → Installed Plugins and read the version under Rox Appointment Booking – Event, Calendar & Appointment Scheduling.
- No admin access? Run a passive check of your site. It reads public files only.
- No account is needed to exploit this. Treat any exposed site on an affected version as at risk.
What to do
- Update to version 1.3.2, or a newer patched version
- Rotate administrator passwords and application secrets if the site ran a vulnerable version while publicly reachable.
- Watch Rox Appointment Booking – Event, Calendar & Appointment Scheduling to get an email when the next vulnerability is published.
Advisory
Source description from Wordfence Intelligence, credited to Daryle Minor.
The Rox Appointment Booking – Appointment Booking Scheduling Solution plugin for WordPress is vulnerable to Privilege Escalation via Mass Assignment in all versions up to, and including, 1.3.1 This is due to the public `/rox-appointment-booking/v1/public/booking` REST endpoint performing mass-assignment of the raw request body into a new customer row while `CustomerModel::$fillable` includes the internal `wp_user_id` column, allowing an unauthenticated attacker to persist an arbitrary WordPress user ID alongside an attacker-controlled email address with no authorization check. When an administrator subsequently opens the poisoned customer record and clicks Update Customer, `SaveCustomer::handleRequest()` passes the stored `wp_user_id` and attacker-supplied email to `wp_update_user()` — succeeding because `LinkedAccount::canChange()` unconditionally returns true when the acting user holds the `edit_users` capability — thereby overwriting the targeted administrator's email address and enabling full account takeover via a standard WordPress password-reset request. Successful exploitation requires an administrator to open and save the poisoned record, and the attacker must know or guess a valid administrator user ID (such as the default user ID 1).
Exploits & references
Proof-of-concept & detection
No public proof-of-concept or detection template is known for this vulnerability.
Advisories & patches
- Advisorywordfence.com
Related CVEs
More in Rox Appointment Booking – Event, Calendar & Appointment Scheduling
All 6| Severity | Vulnerability | CVE | Published |
|---|---|---|---|
| Medium5.3 | Unauthenticated Information Exposure ≤1.2.7Update to 1.2.8 | CVE-2026-87896 | |
| Medium5.3 | Missing Authorization <1.2.0Update to 1.2.0 | CVE-2026-87891 | |
| Medium5.3 | Unauthenticated Information Exposure ≤1.2.7Update to 1.2.8 | CVE-2026-87907 | |
| Medium5.3 | 1.2.2 - Unauthenticated Insecure Direct Object Reference 1.0.9 – 1.2.2Update to 1.2.3 | CVE-2026-87894 | |
| Medium5.3 | Payment Bypass to Unauthenticated Arbitrary Booking Price and Payment Method Bypass <1.2.0Update to 1.2.0 | CVE-2026-87892 |
- Medium5.3Unauthenticated Information Exposure
≤1.2.7Update to 1.2.8
- Medium5.3Missing Authorization
<1.2.0Update to 1.2.0
- Medium5.3Unauthenticated Information Exposure
≤1.2.7Update to 1.2.8
- Medium5.31.2.2 - Unauthenticated Insecure Direct Object Reference
1.0.9 – 1.2.2Update to 1.2.3
- Medium5.3Payment Bypass to Unauthenticated Arbitrary Booking Price and Payment Method Bypass
<1.2.0Update to 1.2.0
Same weakness (Privilege Escalation)
All Privilege Escalation| Severity | Vulnerability | CVE | Published |
|---|---|---|---|
| High7.2 | Unauthenticated Stored Cross-Site Scripting via Comment User-Agent Header | CVE-2026-120688 | |
| Critical9.8 | Unauthenticated Arbitrary File Upload via File Upload via Public Form Submission | CVE-2026-125055 | |
| Critical9.8 | Unauthenticated PHP Object Injection to Remote Code Execution via 'form' Parameter | CVE-2026-119077 | |
| Medium5.3 | Unauthenticated Sensitive Information Exposure in 'search' Parameter | CVE-2026-121518 |
- High7.2Unauthenticated Stored Cross-Site Scripting via Comment User-Agent Header
EZ SQL Reports Shortcode Widget and DB Backup
≤5.25.25Update to 5.26.45
- Critical9.8Unauthenticated Arbitrary File Upload via File Upload via Public Form Submission
Chatterbug Forms – Fast, Flexible WordPress Form Builder
≤1.0.2Update to 1.1
- Critical9.8Unauthenticated PHP Object Injection to Remote Code Execution via 'form' Parameter
ELEX WordPress HelpDesk & Customer Ticketing System
≤3.3.9Update to 3.4.0
- Medium5.3Unauthenticated Sensitive Information Exposure in 'search' Parameter
Customer Reviews for WooCommerce
≤5.127.0Update to 5.128.0
Timeline
CVE published
Severity high, CVSS 8.8
Record last updated
Sources & licenses
Wordfence record- Vulnerability data
- Wordfence Intelligence. [object Object] Licensed under the CC BY-SA 4.0.
- CVE® identifiers
- [object Object]. Used under the CVE Program. CVE® is a registered trademark of The MITRE Corporation.
- CVSS / CWE
- National Vulnerability Database (NVD), shown unmodified. This product uses the NVD API but is not endorsed or certified by the NVD.
- VulnCrest content
- Summary, remediation guidance and page layout © VulnCrest. Not sourced from NVD.
