CVE-2026-19660: Divi Membership <= 2.3.0 - Unauthenticated Authentication Bypass via 'paypal_param' Parameter
The Divi Membership plugin for WordPress is vulnerable to Authentication Bypass in all versions up to, and including, 2.3.0. The processpaypalcallback function, hooked to the init action, accepts a base64-encoded paypalparam GET parameter with no IPN validation, no cryptographic signature check, no ownership verification, and no nonce, allowing it to trust an entirely attacker-controlled user ID value that is passed directly to wpsetcurrentuser() and wpsetauthcookie(). This makes it possible for unauthenticated attackers to log in as any existing WordPress user — including administrators — by supplying an arbitrary user ID in the paypalparam GET parameter, resulting in full site takeover. The vulnerability is further compounded by the fact that the PayPal gateway class is instantiated unconditionally regardless of whether PayPal is enabled or configured, ensuring the vulnerable hook is always registered on every front-end request.
Affected Software
Event History
Frequently Asked Questions
Are sites exposed if they do not use or configure PayPal?
Yes. The PayPal gateway class is instantiated unconditionally, so the vulnerable callback hook is registered on every front-end request regardless of whether PayPal is enabled or configured.
What does an attacker need to exploit this issue?
An attacker does not need authentication, user interaction, or a valid PayPal notification. They can supply a base64-encoded paypal_param GET parameter containing an attacker-controlled ID for an existing WordPress user.
What level of access can exploitation provide?
The attacker can log in as any existing WordPress user, including an administrator. An administrator account compromise can result in full site takeover.
What validation controls are missing from the callback?
The callback does not validate PayPal IPN messages or verify a cryptographic signature, user ownership, or nonce. It directly trusts the supplied user ID before setting the current user and authentication cookie.