Skip to main content
CVE Vulnerability Database
Vulnerability Database/CVE-2025-23961

CVE-2025-23961: WordPress Graphs & Charts Auth Bypass Flaw

CVE-2025-23961 is an authorization bypass vulnerability in the WordPress Graphs & Charts plugin that exploits misconfigured access controls. This post explains its impact, affected versions up to 2.0.8, and mitigation steps.

Published:

CVE-2025-23961 Overview

CVE-2025-23961 is a missing authorization vulnerability [CWE-862] in the wptasker WordPress Graphs & Charts plugin (graph-lite). The flaw affects all versions up to and including 2.0.8. Authenticated attackers with low-privilege accounts can exploit incorrectly configured access control checks to perform actions restricted to higher-privileged users. The vulnerability produces limited impact on integrity and availability but does not expose confidential data.

Critical Impact

Authenticated users with low privileges can bypass access control checks in the WordPress Graphs & Charts plugin, allowing unauthorized modification of plugin-managed data on affected WordPress sites.

Affected Products

  • WordPress Graphs & Charts plugin (graph-lite) by wptasker
  • All versions from initial release through 2.0.8
  • WordPress installations with the vulnerable plugin activated

Discovery Timeline

  • 2025-01-16 - CVE-2025-23961 published to NVD
  • 2026-06-17 - Last updated in NVD database

Technical Details for CVE-2025-23961

Vulnerability Analysis

The vulnerability stems from missing authorization checks on one or more plugin endpoints. WordPress plugins commonly expose AJAX handlers and REST API routes that require capability verification through functions such as current_user_can() or nonce validation via check_ajax_referer(). The graph-lite plugin omits or improperly implements these checks on privileged actions.

An attacker authenticated with a low-privilege role, such as Subscriber, can invoke these actions. The plugin processes the request without verifying that the caller holds the required capability. This constitutes a broken access control condition mapped to [CWE-862].

Root Cause

The root cause is the absence of server-side authorization enforcement on plugin actions. Access control decisions rely on incorrectly configured checks that do not validate the calling user's role or capability. The Patchstack advisory classifies this as a broken access control vulnerability affecting all versions through 2.0.8.

Attack Vector

Exploitation requires network access to the WordPress site and a valid authenticated session with any low-privilege role. No user interaction from an administrator is required. The attacker sends crafted HTTP requests to the vulnerable plugin endpoints. Successful exploitation allows limited modification of plugin state and can cause minor availability disruption to graph and chart functionality. See the Patchstack Vulnerability Report for technical references.

Detection Methods for CVE-2025-23961

Indicators of Compromise

  • Unexpected modifications to graph or chart content created by low-privilege user accounts
  • HTTP POST requests to graph-lite plugin AJAX endpoints (/wp-admin/admin-ajax.php) or REST routes from non-administrator sessions
  • Anomalous activity from Subscriber or Contributor accounts targeting plugin actions

Detection Strategies

  • Audit WordPress access logs for requests referencing the graph-lite plugin path or its AJAX actions from low-privilege users
  • Review the plugin version installed across WordPress sites and flag any instance running version 2.0.8 or earlier
  • Correlate plugin-related database changes with the user_id of the account that initiated them

Monitoring Recommendations

  • Enable WordPress audit logging to record capability checks, role changes, and plugin data modifications
  • Monitor for spikes in authenticated requests to admin-ajax.php with plugin-specific action parameters
  • Alert on new user registrations followed by immediate access to plugin endpoints

How to Mitigate CVE-2025-23961

Immediate Actions Required

  • Inventory all WordPress sites using the graph-lite plugin and identify installations at version 2.0.8 or earlier
  • Update the plugin to a patched release once available from wptasker; if no patched version exists, deactivate and remove the plugin
  • Restrict user registration on WordPress sites that do not require self-service accounts

Patch Information

At the time of publication, the Patchstack advisory lists affected versions as n/a through <= 2.0.8. Administrators should consult the Patchstack Vulnerability Report and the WordPress plugin repository for the latest fixed version.

Workarounds

  • Deactivate the graph-lite plugin until a fixed version is installed
  • Use a Web Application Firewall (WAF) rule to block requests to plugin endpoints from non-administrator sessions
  • Enforce least-privilege role assignment and disable open user registration where feasible
bash
# Disable the vulnerable plugin via WP-CLI until a patch is applied
wp plugin deactivate graph-lite
wp plugin list --name=graph-lite --fields=name,status,version

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.