CVE-2026-91847 Overview
CVE-2026-91847 is an Insecure Direct Object Reference (IDOR) vulnerability in the Online Scheduling and Appointment Booking System WordPress plugin before version 28.2. The plugin exposes unauthenticated conversation actions for its AI booking-assistant feature without verifying that the requester owns the referenced conversation. Any unauthenticated visitor can read another visitor's assistant messages or inject messages into an in-progress conversation. The flaw is categorized under [CWE-639] Authorization Bypass Through User-Controlled Key.
Critical Impact
Unauthenticated attackers can read private AI booking-assistant conversations from other visitors and inject arbitrary messages into their sessions, breaking conversation confidentiality and integrity.
Affected Products
- Online Scheduling and Appointment Booking System WordPress plugin versions before 28.2
- WordPress sites exposing the plugin's AI booking-assistant conversation endpoints
- Any deployment relying on the plugin's unauthenticated conversation action handlers
Discovery Timeline
- 2026-09-19 - CVE-2026-91847 published to NVD
- 2026-09-21 - Last updated in NVD database
Technical Details for CVE-2026-91847
Vulnerability Analysis
The plugin implements an AI booking-assistant that stores conversations identified by a reference string. Conversation actions are exposed over unauthenticated endpoints so that anonymous site visitors can interact with the assistant without logging in. The handlers accept a conversation identifier from the request and act on it directly, without checking that the caller established the session that owns it.
Because ownership is not enforced, an attacker who obtains or guesses another visitor's conversation identifier can retrieve the message history or append messages to the conversation. Confidentiality of assistant transcripts is broken, and integrity is undermined because injected content is delivered inside another user's session.
Root Cause
The root cause is a missing authorization check on user-controlled input, aligning with [CWE-639]. The handlers rely on the conversation identifier alone as an implicit access token, without binding the conversation to a session cookie, nonce, or signed reference. Any request that presents a valid identifier is treated as authoritative.
Attack Vector
Exploitation occurs over the network against the plugin's public conversation action endpoints. No authentication or user interaction is required. An attacker enumerates or otherwise obtains conversation identifiers and issues crafted requests to read messages or inject content. The attack complexity is elevated because the attacker must first learn a valid identifier belonging to an active conversation.
No verified proof-of-concept code is published. See the WPScan Vulnerability Report for advisory details.
Detection Methods for CVE-2026-91847
Indicators of Compromise
- Repeated unauthenticated requests to the plugin's AI booking-assistant conversation action endpoints originating from a single IP address.
- Sequential or brute-forced conversation identifier values appearing in web server access logs.
- Assistant transcripts containing messages that do not correspond to any legitimate visitor session on the same IP or user-agent.
Detection Strategies
- Review WordPress and reverse-proxy logs for high-volume access to the plugin's conversation endpoints with varying identifier parameters.
- Correlate conversation identifier values across distinct client fingerprints; the same identifier accessed from unrelated sessions indicates enumeration or hijack.
- Alert on unauthenticated POST requests that inject messages into conversations without a prior GET establishing that session on the same client.
Monitoring Recommendations
- Enable verbose access logging on admin-ajax.php and any plugin-specific REST routes handling conversation actions.
- Track request rates per source IP against the plugin endpoints and flag deviations from baseline.
- Retain application logs long enough to investigate identifier reuse across sessions and to reconstruct message injection attempts.
How to Mitigate CVE-2026-91847
Immediate Actions Required
- Upgrade the Online Scheduling and Appointment Booking System WordPress plugin to version 28.2 or later.
- Audit existing AI booking-assistant transcripts for injected content or unexpected reads before patching.
- Rotate or invalidate any active conversation identifiers where possible to force new sessions.
Patch Information
The vendor addressed the issue in version 28.2 by enforcing ownership checks on unauthenticated conversation actions. Consult the WPScan Vulnerability Report for the authoritative advisory and fix reference.
Workarounds
- Restrict access to the plugin's conversation endpoints at the web application firewall until the update is applied.
- Disable the AI booking-assistant feature if it is not required for the booking workflow.
- Require a session cookie or nonce validation upstream (for example via reverse-proxy rules) before conversation action requests reach WordPress.
# Example WAF rule blocking unauthenticated conversation actions until patched
# (adjust action name to match plugin routes documented in the advisory)
SecRule REQUEST_URI "@rx /wp-admin/admin-ajax\.php" \
"chain,phase:2,deny,status:403,id:1029184701,\
msg:'Block plugin AI conversation actions pending CVE-2026-91847 patch'"
SecRule ARGS:action "@rx ^(get|append)_conversation$"
Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.

