Skip to main content
Vulnerability Database/CVE-2026-89334

CVE-2026-89334: Better Messages WordPress Auth Bypass Flaw

CVE-2026-89334 is an authorization bypass flaw in Better Messages WordPress plugin that allows authenticated attackers to access message transcripts and user data without proper authorization. This post explains its impact, affected versions, and mitigation steps.

Published:

CVE-2026-89334 Overview

The Better Messages – Chat Rooms, Group Chat, Private Messages & AI Chat Bots plugin for WordPress contains an authorization bypass vulnerability in all versions up to and including 2.15.33. The plugin fails to verify that a requesting user is authorized to read chat-room threads through its REST API endpoints. Authenticated attackers holding custom-level access or above can retrieve full message transcripts, thread metadata, and user data from any chat-room thread. Exploitation requires that the target chat room's only_joined_can_read setting retains its default value of 0. The issue is tracked as a Missing Authorization weakness [CWE-862].

Critical Impact

Authenticated attackers can access private chat transcripts, thread metadata, and user information belonging to any chat room with default read settings.

Affected Products

  • Better Messages – Chat Rooms, Group Chat, Private Messages & AI Chat Bots plugin for WordPress
  • All versions up to and including 2.15.33
  • Fixed in version 3.0.0

Discovery Timeline

  • 2026-09-19 - CVE-2026-89334 published to NVD
  • 2026-09-21 - Last updated in NVD database

Technical Details for CVE-2026-89334

Vulnerability Analysis

The vulnerability resides in the REST API surface of the Better Messages plugin. Multiple endpoints defined in inc/rest-api.php and helper functions in inc/functions.php do not enforce membership checks before returning thread contents. When a chat room is created with the default only_joined_can_read value of 0, the plugin treats any authenticated user with custom-level or higher access as eligible to read the thread. Attackers can enumerate thread identifiers and issue REST requests to retrieve full message transcripts, participant lists, and metadata for rooms they never joined. The scope is limited to confidentiality; the flaw does not permit message modification or service disruption.

Root Cause

The root cause is a missing authorization check [CWE-862] in the REST permission callbacks. The plugin verifies that the caller is authenticated but does not confirm the caller is a participant of the requested thread. Vulnerable code paths are visible at line references #L3533, #L3582, and #L3601 in functions.php, and at #L181, #L418, #L1964, and #L2598 in rest-api.php. See the WordPress Changeset to Version 3.0.0 for the corrective changes.

Attack Vector

An attacker first obtains any authenticated account at custom-level access or above on the target WordPress site. The attacker then issues authenticated REST API requests to the plugin's thread-read endpoints while supplying arbitrary thread identifiers. Because the permission callback omits participant verification, the server returns thread contents for rooms whose only_joined_can_read setting is 0. Refer to the Wordfence Vulnerability Report #B3243 for additional exploitation context.

Detect Identity Attacks the Moment Authentication Fails

Singularity™ Identity surfaces credential misuse, lateral movement, and privilege escalation in real time, so you can contain the breach before it spreads.

Stop Identity Attacks

Detection Methods for CVE-2026-89334

Indicators of Compromise

  • Unexpected authenticated requests to Better Messages REST routes such as /wp-json/bp-better-messages/* from low-privilege accounts.
  • Sequential or enumerated thread ID parameters in REST API access logs.
  • Large volumes of thread-read responses returned to a single non-participant account.

Detection Strategies

  • Review WordPress REST API access logs for authenticated users retrieving threads they are not members of.
  • Correlate plugin REST endpoint calls against membership records stored in the plugin's database tables.
  • Alert on any account with custom-level or subscriber-tier access issuing high-frequency thread lookups.

Monitoring Recommendations

  • Forward WordPress and web server logs to a centralized analytics platform for baseline behavior modeling.
  • Track REST API response sizes tied to Better Messages routes to detect bulk data exfiltration.
  • Monitor for the creation of low-privilege accounts followed by immediate REST API activity against messaging endpoints.

How to Mitigate CVE-2026-89334

Immediate Actions Required

  • Upgrade the Better Messages plugin to version 3.0.0 or later on all WordPress sites.
  • Audit existing user accounts and remove or downgrade unnecessary custom-level roles.
  • Review recent REST API logs for unauthorized thread access predating the patch.

Patch Information

The vendor addressed the issue in Better Messages version 3.0.0. The fix introduces proper participant verification in the REST permission callbacks. Full diff details are available in the WordPress Changeset to Version 3.0.0.

Workarounds

  • Set the only_joined_can_read option to 1 on all existing chat rooms to require membership for thread reads.
  • Restrict registration and limit custom-level role assignment to trusted users only.
  • Deploy a web application firewall rule to block unauthenticated enumeration of Better Messages REST endpoints until the patch is applied.
bash
# Update the plugin via WP-CLI once version 3.0.0 is available
wp plugin update bp-better-messages --version=3.0.0

# Verify the installed version
wp plugin get bp-better-messages --field=version

Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.

Experience the Most Advanced Cybersecurity Platform

See how the world’s most intelligent, autonomous cybersecurity platform can protect your organization today and into the future.