Ultimate Multisite <= 2.15.0 - Unauthenticated Authentication Bypass via 'checkout_form' Parameter
- Published
- Last modified
- Status
- published
- Known exploitation
- Not listed in CISA KEV
- Public exploit
- None on Exploit-DB
- Exploitation: none
- Automatable: yes
- Technical impact: total
?
Decision points from CISA's Vulnrichment, assessed (SSVC 2.0.3).
SSVC documentationSummary
The Ultimate Multisite – WordPress Multisite SaaS & WaaS Platform plugin for WordPress is vulnerable to Authentication Bypass in all versions up to, and including, 2.15.0 via the `checkout_form` parameter of the `login_customer_after_checkout` function. This is due to the publicly accessible `wu_ajax_nopriv_wu_validate_form` AJAX handler accepting a freely obtainable checkout nonce, and the `checkout_form=wu-finish-checkout` parameter causing `get_validation_rules()` to discard all validation rules while `finish_checkout_form_fields()` returns an empty step list — forcing `is_last_step()` to return true and routing the request directly into full order processing — after which `maybe_create_customer()` resolves the attacker-supplied `email_address` to an existing WordPress user ID without any authentication or ownership verification, and `login_customer_after_checkout()` calls `wp_set_auth_cookie()` for that user ID via a passwordless code path. This makes it possible for unauthenticated attackers to log in as any existing WordPress user — including a Network Super Admin — simply by knowing their email address. Exploitation requires that the targeted user account has no pre-existing Ultimate Multisite customer record; accounts such as a Network Super Admin on a fresh Multisite install, or any administrator or editor added before Ultimate Multisite was configured, satisfy this condition and are therefore exploitable.
Affected versions
- superdav42 Ultimate Multisite – WordPress Multisite SaaS & WaaS Platform
through 2.15.0
References 13
plugins.trac.wordpress.org
- browser/ultimate-multisite/tags/2.15.0/inc/checkout/class-checkout.php#L2489
- browser/ultimate-multisite/tags/2.15.0/inc/checkout/class-checkout.php#L1223
- browser/ultimate-multisite/tags/2.15.0/inc/checkout/class-checkout.php#L2700
- browser/ultimate-multisite/tags/2.15.0/inc/models/class-checkout-form.php#L1352
- browser/ultimate-multisite/tags/2.15.0/inc/checkout/class-checkout.php#L208
- browser/ultimate-multisite/tags/2.14.2/inc/checkout/class-checkout.php#L2489
- browser/ultimate-multisite/tags/2.14.2/inc/checkout/class-checkout.php#L1223
- browser/ultimate-multisite/tags/2.14.2/inc/checkout/class-checkout.php#L2700
- browser/ultimate-multisite/tags/2.14.2/inc/models/class-checkout-form.php#L1352
- browser/ultimate-multisite/tags/2.14.2/inc/checkout/class-checkout.php#L208
- changeset?reponame=&new=3653623%40ultimate-multisite%2Ftags%2F2.15.1&old=3634394%40ultimate-multisite%2Ftags%2F2.15.0
- changeset/3653622/ultimate-multisite/trunk/inc/checkout/class-checkout.php