Skip to main content
CVE Vulnerability Database

CVE-2026-9273: Kadence Memberships Auth Bypass Vulnerability

CVE-2026-9273 is an authentication bypass flaw in Kadence Memberships plugin for WordPress that enables password reset poisoning attacks leading to account takeover. This article covers the technical details, affected versions, and mitigation.

Published:

CVE-2026-9273 Overview

CVE-2026-9273 is a password reset link poisoning vulnerability in the Membership Plugin – Kadence Memberships for WordPress (formerly Restrict Content). All versions up to and including 4.0.0 are affected. The legacy lost-password handler rc_process_lost_password_form() consumes the attacker-controlled rc_redirect POST parameter and passes it into two unvalidated sinks in legacy/includes/forms.php. Unauthenticated attackers can trigger a password reset for any account, including administrators, and redirect the reset link to an attacker-controlled host. When the victim clicks the link, the reset key leaks to the attacker, enabling account takeover [CWE-640].

Critical Impact

Unauthenticated attackers can hijack administrator accounts on WordPress sites running vulnerable Kadence Memberships installations by intercepting password reset keys.

Affected Products

  • Kadence Memberships (formerly Restrict Content) WordPress plugin, versions ≤ 4.0.0
  • Fixed in version 4.0.1
  • WordPress sites exposing the [login_form] shortcode

Discovery Timeline

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

Technical Details for CVE-2026-9273

Vulnerability Analysis

The vulnerability resides in the legacy lost-password workflow shipped by the plugin under legacy/includes/forms.php. The public [login_form] shortcode broadcasts the nonce required to reach rc_process_lost_password_form() at line 207, making the handler reachable by any anonymous visitor. The handler then reads the rc_redirect value from the POST body without validating that it points to the same origin or to a WordPress-controlled URL.

Two sinks consume this attacker-controlled value. At line 243, the handler invokes wp_redirect( esc_url( $_POST['rc_redirect'] ) . ... ). At line 306, inside rc_send_password_reset_email(), the code calls add_query_arg( array( 'key' => $key, 'login' => ... ), $_POST['rc_redirect'] ). The esc_url() filter enforces character encoding but does not restrict the host, so external URLs pass through unchanged.

Root Cause

The root cause is missing host validation on a user-supplied redirect target that is used to construct the password reset URL embedded in the outgoing email body. The plugin trusts client input for a security-sensitive URL rather than deriving the reset link from home_url() or network_site_url(). This is a textbook instance of [CWE-640] – Weak Password Recovery Mechanism for Forgotten Password.

Attack Vector

An unauthenticated attacker submits the lost-password form on any page rendering the [login_form] shortcode, supplying the target account's username or email in the standard field and setting rc_redirect to an attacker-controlled host. WordPress generates a valid reset key for the account and builds the reset URL by concatenating the attacker's host with the key and login query parameters. The victim receives the email and clicks the poisoned link, delivering the reset key to the attacker's server via HTTP referer, access log, or intentional endpoint. The attacker replays the key and login values against the legitimate WordPress site to complete the password reset and take over the account.

Detection Methods for CVE-2026-9273

Indicators of Compromise

  • POST requests to WordPress pages containing the [login_form] shortcode with an rc_redirect parameter pointing to an external host.
  • Outbound password reset emails whose reset URLs do not match the site's canonical hostname.
  • Successful password changes for administrator accounts shortly after a lost-password submission originating from an unfamiliar IP.

Detection Strategies

  • Inspect web server access logs for POST requests carrying rc_redirect= values with schemes or hosts outside the site's own domain.
  • Correlate retrieve_password WordPress hook events with subsequent password_reset events for privileged users.
  • Compare the Host header and referrer chain on requests hitting wp-login.php?action=rp against expected patterns.

Monitoring Recommendations

  • Alert on lost-password submissions targeting administrator or editor usernames.
  • Monitor for anomalous DNS lookups from mail clients following WordPress-originated reset emails.
  • Track plugin version inventory across WordPress fleets and flag any host still running Restrict Content or Kadence Memberships ≤ 4.0.0.

How to Mitigate CVE-2026-9273

Immediate Actions Required

  • Update the Kadence Memberships plugin to version 4.0.1 or later on all WordPress installations.
  • Force a password reset for administrator and privileged accounts on any site that ran a vulnerable version.
  • Audit recent password reset events and user role changes for signs of takeover.
  • Rotate WordPress secret keys in wp-config.php if compromise is suspected, invalidating outstanding sessions and reset keys.

Patch Information

The vendor addressed the issue in Restrict Content / Kadence Memberships version 4.0.1. Review the fix in the WordPress ChangeSet Details and the third-party analysis in the Wordfence Vulnerability Report. The vulnerable code paths are documented in the WordPress Plugin Trac at forms.php line 207, line 243, and line 306.

Workarounds

  • Remove the [login_form] shortcode from public pages until patching is complete to eliminate the anonymous nonce broadcast.
  • Deploy a web application firewall rule that blocks POST requests to lost-password endpoints when rc_redirect contains a scheme or host outside the site's own domain.
  • Restrict access to /wp-login.php and pages hosting the plugin's login form to authenticated IP ranges where feasible.

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.