Ultimate Multisite <= 2.15.0 - Unauthenticated Authentication Bypass via 'checkout_form' Parameter
What fixes it
No source in this snapshot names a fixed version.
Description
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.
Text from CVE List
Affected versions 1
- Ultimate Multisite – WordPress Multisite SaaS & WaaS Platformaffected: all versions through 2.15.0CVE List
References 13
- wordfence.com/threat-intel/vulnerabilities/id/66cb8c6f-d405-4115-a626-040e9b5b1e62?source=cveReferencevia CVE List
- plugins.trac.wordpress.org/browser/ultimate-multisite/tags/2.15.0/inc/checkout/class-checkout.php#L2489Referencevia CVE List
- plugins.trac.wordpress.org/browser/ultimate-multisite/tags/2.15.0/inc/checkout/class-checkout.php#L1223Referencevia CVE List
- plugins.trac.wordpress.org/browser/ultimate-multisite/tags/2.15.0/inc/checkout/class-checkout.php#L2700Referencevia CVE List
- plugins.trac.wordpress.org/browser/ultimate-multisite/tags/2.15.0/inc/models/class-checkout-form.php#L1352Referencevia CVE List
- plugins.trac.wordpress.org/browser/ultimate-multisite/tags/2.15.0/inc/checkout/class-checkout.php#L208Referencevia CVE List
- plugins.trac.wordpress.org/browser/ultimate-multisite/tags/2.14.2/inc/checkout/class-checkout.php#L2489Referencevia CVE List
- plugins.trac.wordpress.org/browser/ultimate-multisite/tags/2.14.2/inc/checkout/class-checkout.php#L1223Referencevia CVE List
- plugins.trac.wordpress.org/browser/ultimate-multisite/tags/2.14.2/inc/checkout/class-checkout.php#L2700Referencevia CVE List
- plugins.trac.wordpress.org/browser/ultimate-multisite/tags/2.14.2/inc/models/class-checkout-form.php#L1352Referencevia CVE List
- plugins.trac.wordpress.org/browser/ultimate-multisite/tags/2.14.2/inc/checkout/class-checkout.php#L208Referencevia CVE List
- plugins.trac.wordpress.org/changeset?reponame=&new=3653623%40ultimate-multisite%2Ftags%2F2.15.1&old=3634394%40ultimate-multisite%2Ftags%2F2.15.0Referencevia CVE List
- plugins.trac.wordpress.org/changeset/3653622/ultimate-multisite/trunk/inc/checkout/class-checkout.phpReferencevia CVE List