On this page (7 sections)

A critical flaw, tracked as CVE-2026-116557, affects the WP Booking System - Booking Calendar plugin for WordPress in versions up to and including 2.1.0.5. A function that removes calendar notes does not check what the logged-in user is allowed to do, so an account with only Subscriber-level access can delete notes belonging to any calendar.

If you run a booking site that allows public registration, or you simply have many low-privilege accounts, this is worth checking today. The details below are based on the GitHub Advisory Database entry; the NVD record repeats the same description.

What happened

The plugin exposes an AJAX handler, wpbs_action_ajax_calendar_remove_note(), that deletes notes attached to booking calendars. According to the advisory, that function lacks a capability check. In WordPress, a capability check is the step where the code asks whether the current user is actually permitted to perform the action. Without it, being logged in is enough.

The advisory says authenticated attackers with Subscriber-level access and above can delete arbitrary calendar notes belonging to any calendar. Subscriber is the lowest default WordPress role, and on many sites anyone can obtain it by registering.

Technical details

This is a classic broken access control issue, classified as CWE-862 (Missing Authorization). The product does not perform an authorization check when an actor attempts to perform an action. The advisory lists the CVSS v3.1 vector as AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:H.

One thing to note: the written description requires an authenticated Subscriber account, while the vector lists privileges required as None. The sources do not explain the difference, so treat the practical requirement as at least a logged-in account and do not assume anonymous visitors are safe.

The advisory points to the vulnerable code in version 2.1.0.5 of the plugin's notes file and to a WordPress.org changeset on trunk touching the same file. The sources do not state that this changeset is the official fix or which release contains it, so confirm this on the plugin page before relying on it. A Wordfence entry is also referenced.

Who is affected

Any WordPress site with the plugin installed at version 2.1.0.5 or earlier is in scope. Risk is highest where:

  • Public registration is enabled and new users default to the Subscriber role.
  • The site has many customer accounts, such as membership or WooCommerce sites that also use bookings.
  • Staff rely on calendar notes for operational details such as guest requests or room instructions.

The stated impact is deletion of notes, which is a loss of data integrity. The CVSS vector also rates availability impact as high, but the sources describe nothing beyond note deletion, so avoid assuming broader consequences.

How to check your exposure

First find out whether the plugin is installed and which version you run. The WP-CLI command below lists the plugin with its status and version; run it from your WordPress root. Look for a version of 2.1.0.5 or lower.

List the plugin and its installed version (run in the WordPress root)WP-CLI
wp plugin list --name=wp-booking-system --fields=name,status,version,update_version

The plugin directory slug wp-booking-system comes from the file paths in the advisory references. If the command reports that the plugin is not installed, you are not affected by this issue.

Next, see how many low-privilege accounts exist. This read-only command lists users with the Subscriber role so you can look for unfamiliar registrations.

List Subscriber accounts to review for unknown users (read-only)WP-CLI
wp user list --role=subscriber --fields=ID,user_login,user_email,user_registered

What to do now

The advisory does not name a patched version, so the first job is to find out whether one exists. Check the plugin's page and changelog in your WordPress dashboard, then update.

Update the plugin if a newer version is available (run in the WordPress root, back up first)WP-CLI
wp plugin update wp-booking-system
Caution. Take a full backup before updating, and test on staging if you can. Booking plugins hold live reservations, and a plugin update can change behavior on a production site.
Tip. If you cannot update right away, reducing who can hold an account is the most useful stopgap, because the flaw requires a logged-in user. A web application firewall can add another layer, but do not treat it as a replacement for patching. See what a WAF is for what it can and cannot do.

Detection and monitoring

The sources do not describe any signs of exploitation, so look for indirect signals. Staff reporting that calendar notes have vanished is the most obvious one. Check your web server access logs for unusual POST requests to admin-ajax.php from accounts that should not be using the booking features.

Count POST requests to admin-ajax.php per client IP in an access log (read-only; adjust the log…Shell
grep 'POST /wp-admin/admin-ajax.php' /var/log/nginx/access.log | awk '{print $1}' | sort | uniq -c | sort -rn | head

A single IP sending many such requests is worth a closer look, though this pattern is not specific to this flaw and normal plugins also use that endpoint. For ongoing hygiene, Webforta Scan can run read-only checks on sites you verify, and our guide on WordPress plugin vulnerabilities explains how to keep track of known issues in what you have installed.

What we do not know yet

  • No patched version is named in the advisory.
  • No exploitation in the wild is reported in the sources, but absence of reports is not proof of safety.
  • Only one independent publisher covers this so far; the NVD entry repeats the same text.
  • The GitHub entry is marked Unreviewed, so details may be updated.

We will treat the version and fix details as provisional until the plugin author or a further source confirms them. For a broader routine, see the WordPress security checklist.

Sources

This article is based on the public sources below. Details can change as vendors and researchers publish more; check the original advisories before acting on version numbers.

  1. CVE-2026-116557 - GitHub Advisory Databasegithub.com
  2. CVE-2026-116557: The WP Booking System - Booking Calendar plugin for WordPress is vulnerable to unauthorized modification of data due to a missing capability check on the…nvd.nist.gov ·
  • WordPress
  • CVE-2026-116557
  • Plugin vulnerability
  • Broken access control
  • Booking plugin