Live › vulnerability › CVE-2026-104012
The Rox Appointment Booking WordPress plugin, up to and including version 1.3.1, has a public booking endpoint that accepts a user ID field without checks. An unauthenticated attacker can link a booking to an administrator's WordPress account and change that administrator's email, then reset the password to take over the site.
Summary written from the sources below. Check the originals before acting.
First seen by InfraStack 2026-10-31 08:34 UTC. All times on this page are UTC.
Sites running the Rox Appointment Booking plugin at version 1.3.1 or earlier are exposed, since its public booking endpoint is reachable without login. The risk becomes a full takeover once an administrator opens and saves a poisoned customer record, and an attacker needs a valid administrator user ID, often the default ID 1. Sites without the plugin, or with it removed, are not affected.
No product ranges from the sources yet.
rox-appointment-booking plugin header; versions up to and including 1.3.1 are affected./wp-json/rox-appointment-booking/v1/public/booking on the site.Each row is the first time that source carried this signal. The analyst’s rows are its own findings.
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).
This page as .md · .json · in your agent: get_signal("CVE-2026-104012")
NVD data is provided by NIST and is public domain. Posts quoted belong to their authors.