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

CVE-2026-12729: weDocs WordPress Auth Bypass Vulnerability

CVE-2026-12729 is an authentication bypass flaw in weDocs WordPress plugin allowing subscribers to trigger unauthorized data migrations and modify site content. This article covers technical details, affected versions, and fixes.

Published:

CVE-2026-12729 Overview

The weDocs: AI Powered Knowledge Base, Docs, Documentation, Wiki & AI Chatbot plugin for WordPress contains a Missing Authorization vulnerability [CWE-862] affecting versions up to and including 2.3.0. The do_migration() function registered as the wedocs_migrate_betterdocs_to_wedocs AJAX action lacks both nonce verification via check_ajax_referer() and capability checks via current_user_can(). Authenticated attackers with Subscriber-level access can trigger a full BetterDocs-to-weDocs data migration, create or modify docs custom post type entries with attacker-controlled titles, update site options, and deactivate the BetterDocs and BetterDocs Pro plugins.

Critical Impact

Subscriber-level attackers can manipulate site content, alter site options, and disable installed BetterDocs plugins on affected WordPress sites.

Affected Products

  • weDocs: AI Powered Knowledge Base, Docs, Documentation, Wiki & AI Chatbot plugin for WordPress
  • All versions up to and including 2.3.0
  • WordPress sites with BetterDocs or BetterDocs Pro installed alongside weDocs

Discovery Timeline

  • 2026-07-03 - CVE-2026-12729 published to NVD
  • 2026-07-06 - Last updated in NVD database

Technical Details for CVE-2026-12729

Vulnerability Analysis

The weDocs plugin registers the wedocs_migrate_betterdocs_to_wedocs AJAX action to migrate content from the BetterDocs plugin into weDocs. The handler function do_migration() in includes/Admin/Migrate.php executes sensitive operations without verifying that the caller has appropriate privileges. WordPress AJAX actions registered under wp_ajax_ are accessible to any authenticated user, including low-privileged Subscribers.

Because do_migration() skips both check_ajax_referer() and current_user_can(), any logged-in user can invoke the migration workflow. The migration process creates and modifies docs custom post type entries with attacker-supplied titles, writes to site options, and calls deactivate_plugins() against the BetterDocs and BetterDocs Pro plugins.

Root Cause

The root cause is a missing authorization check on a privileged administrative AJAX endpoint. The plugin authors registered a data-migration handler intended for administrators but did not gate it with the standard WordPress capability model. This aligns with CWE-862: Missing Authorization.

Attack Vector

An attacker with any authenticated WordPress account, including a Subscriber, submits a POST request to wp-admin/admin-ajax.php specifying the wedocs_migrate_betterdocs_to_wedocs action. The server executes the migration without validating the requester's role or a nonce. The attacker can seed the WordPress database with docs posts containing chosen titles, mutate site options, and deactivate the BetterDocs plugins, disrupting knowledge-base availability.

For code-level references, see the Migrate.php handler at line 39, the do_migration function at line 56, and the plugin deactivation calls at line 183 and line 206.

Detection Methods for CVE-2026-12729

Indicators of Compromise

  • Unexpected docs custom post type entries appearing in the WordPress database with unfamiliar titles.
  • Web server access logs showing POST requests to /wp-admin/admin-ajax.php with the action=wedocs_migrate_betterdocs_to_wedocs parameter from non-administrator sessions.
  • BetterDocs or BetterDocs Pro unexpectedly deactivated on the site.
  • Modified WordPress options related to weDocs or BetterDocs migration state.

Detection Strategies

  • Review WordPress activity logs for AJAX invocations of wedocs_migrate_betterdocs_to_wedocs originating from Subscriber or Contributor accounts.
  • Monitor the wp_posts table for bulk creation of docs post type rows outside expected administrative windows.
  • Correlate plugin deactivation events for BetterDocs with the identity and role of the initiating user.

Monitoring Recommendations

  • Enable WordPress audit logging plugins that record AJAX actions and role-based context for each request.
  • Alert on any non-administrator account invoking admin-scoped AJAX actions.
  • Track integrity of installed plugins and site options for unauthorized state changes.

How to Mitigate CVE-2026-12729

Immediate Actions Required

  • Update the weDocs plugin to a version later than 2.3.0 that includes the capability and nonce checks introduced in the vendor changeset.
  • Audit existing WordPress user accounts and remove any unnecessary Subscriber-or-above accounts, particularly self-registered accounts.
  • Review site content for suspicious docs posts and revert unauthorized changes to site options.
  • Verify BetterDocs and BetterDocs Pro activation state and reactivate if disabled without authorization.

Patch Information

The vendor addressed the issue in a plugin update tracked in the WordPress plugin changeset. Additional details are available in the Wordfence vulnerability report. Site administrators should upgrade to the fixed release from the WordPress plugin repository.

Workarounds

  • Disable the weDocs plugin until the patched version is installed if BetterDocs migration functionality is not required.
  • Restrict WordPress registration to prevent untrusted users from obtaining Subscriber accounts.
  • Deploy a Web Application Firewall (WAF) rule blocking requests to admin-ajax.php where the action parameter equals wedocs_migrate_betterdocs_to_wedocs unless the session belongs to an administrator.
bash
# Example WAF rule concept blocking non-admin invocations
# of the vulnerable AJAX action
SecRule REQUEST_URI "@endsWith /wp-admin/admin-ajax.php" \
  "chain,deny,status:403,id:1029262729,\
   msg:'Block weDocs migration AJAX abuse CVE-2026-12729'"
SecRule ARGS:action "@streq wedocs_migrate_betterdocs_to_wedocs"

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

Default Legacy - Prefooter | Experience the World’s Most Advanced Cybersecurity Platform

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.