Skip to main content
CVE Vulnerability Database

CVE-2026-7753: Cost Calculator Builder Auth Bypass Flaw

CVE-2026-7753 is an authentication bypass vulnerability in the Cost Calculator Builder WordPress plugin that exposes sensitive API keys and secrets to low-privileged users. This article covers technical details, affected versions, and mitigation.

Published:

CVE-2026-7753 Overview

CVE-2026-7753 is a missing authorization vulnerability [CWE-862] in the Cost Calculator Builder plugin for WordPress, affecting all versions up to and including 3.6.17. The cost-calculator-custom-export-run AJAX action, handled by CCBExportImport::export_calculators(), verifies only a nonce and omits any capability check. The ccb_export_nonce is emitted on every wp-admin page through the ccb_add_admin_nonces callback hooked to admin_head, including pages reachable by Subscriber-level users such as /wp-admin/profile.php. Authenticated attackers with Subscriber access or higher can export every calculator's full configuration, exposing stored payment provider secrets.

Critical Impact

Subscriber-level users can exfiltrate Stripe secret keys, PayPal client secrets, Razorpay secret keys, webhook secrets, and reCAPTCHA secret keys from any affected WordPress site.

Affected Products

  • Cost Calculator Builder plugin for WordPress, all versions through 3.6.17
  • WordPress sites permitting Subscriber-level (or higher) account registration
  • Sites using the plugin's integrated Stripe, PayPal, Razorpay, or reCAPTCHA configurations

Discovery Timeline

  • 2026-08-05 - CVE-2026-7753 published to NVD
  • 2026-08-05 - Last updated in NVD database

Technical Details for CVE-2026-7753

Vulnerability Analysis

The vulnerability resides in the CCBExportImport::export_calculators() handler registered for the cost-calculator-custom-export-run AJAX action. The handler validates a nonce but never calls current_user_can() or any equivalent capability check. Because WordPress nonces are designed as CSRF tokens rather than authorization primitives, nonce verification alone does not restrict which roles may invoke the action.

The ccb_add_admin_nonces callback hooks into admin_head and prints ccb_export_nonce on every admin page. Subscribers retain access to /wp-admin/profile.php, so any authenticated user can read the nonce value directly from the rendered HTML. The exported payload includes complete calculator configurations, embedding cleartext credentials for payment processors and third-party services.

Root Cause

The root cause is a broken access control failure classified under CWE-862 (Missing Authorization). The plugin conflates request authenticity (nonce validation) with authorization (capability enforcement). Sensitive data export must gate on an administrative capability such as manage_options, which the handler does not perform.

Attack Vector

An attacker registers or obtains a Subscriber account on the target WordPress site. The attacker loads any admin page available to Subscribers, scrapes the ccb_export_nonce value from the DOM, and issues a POST request to admin-ajax.php with action=cost-calculator-custom-export-run and the harvested nonce. The server returns the full calculator export containing Stripe, PayPal, Razorpay, webhook, and reCAPTCHA secret keys. No user interaction from an administrator is required.

A public proof-of-concept has not been confirmed at the time of publication. Technical detail for the affected handler is documented in the WordPress Plugin File Export source and the Wordfence Vulnerability Analysis.

Detection Methods for CVE-2026-7753

Indicators of Compromise

  • POST requests to /wp-admin/admin-ajax.php with the parameter action=cost-calculator-custom-export-run originating from non-administrator sessions
  • Unexpected JSON export responses containing keys such as stripe_secret_key, paypal_client_secret, or razorpay_key_secret
  • Newly registered Subscriber accounts issuing admin-ajax requests shortly after login
  • Outbound authentications or transactions using payment provider credentials from unexpected IP ranges

Detection Strategies

  • Inspect web server access logs for cost-calculator-custom-export-run invocations correlated against the requesting user's WordPress role
  • Alert on any admin-ajax.php request where the response body exceeds a baseline size for calculator export endpoints
  • Compare current payment provider API key fingerprints against known-good values to identify credentials that may have been exposed

Monitoring Recommendations

  • Enable WordPress audit logging to record AJAX action invocations along with the authenticated user ID and role
  • Monitor Stripe, PayPal, and Razorpay dashboards for unauthorized API calls or webhook endpoint changes
  • Watch for anomalous account registrations followed by immediate wp-admin activity

How to Mitigate CVE-2026-7753

Immediate Actions Required

  • Update the Cost Calculator Builder plugin to a version later than 3.6.17 that includes the capability check fix
  • Rotate all Stripe secret keys, PayPal client secrets, Razorpay secret keys, webhook secret keys, and reCAPTCHA secret keys stored in plugin calculators
  • Audit WordPress user accounts and disable or delete unrecognized Subscriber-level registrations
  • Review payment provider transaction and API logs for unauthorized activity dating back to plugin installation

Patch Information

The vendor addressed the issue in a subsequent release. Refer to the WordPress Plugin Changeset Report for the exact code changes applied to the export handler.

Workarounds

  • Disable the Cost Calculator Builder plugin until the patched version is deployed
  • Disable open user registration in WordPress settings to eliminate anonymous Subscriber creation
  • Restrict access to /wp-admin/admin-ajax.php for non-administrator roles at the web server or WAF layer
  • Add a WAF rule blocking POST requests where action=cost-calculator-custom-export-run originates from sessions lacking administrator capabilities
bash
# Example WAF rule (ModSecurity) blocking the vulnerable AJAX action
SecRule REQUEST_URI "@endsWith /wp-admin/admin-ajax.php" \
  "chain,phase:2,deny,status:403,id:1026753,\
   msg:'Block CVE-2026-7753 Cost Calculator Builder export'"
  SecRule ARGS:action "@streq cost-calculator-custom-export-run"

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.