Every CVE Search/ Get API key

CVE-2026-85659

PilotPress <= 2.0.43 - Authenticated (Subscriber+) Privilege Escalation via Account Takeover via 'username' Parameter

8.8 High

The PilotPress plugin for WordPress is vulnerable to Privilege Escalation via Account Takeover in all versions up to, and including, 2.0.43. The vulnerability exists because the update_cc_details() AJAX handler forwards an attacker-supplied username parameter to ONTRAPORT via api_call('update_cc_details', ...) before performing the local username_exists() collision check, and aborts without rolling back the remote rename when a collision is detected — leaving the remote ONTRAPORT contact renamed to an existing WordPress Administrator's login. On a subsequent login attempt, user_login() (hooked to wp_authenticate) authenticates against ONTRAPORT using the renamed login and the attacker's own password, resolves the local WordPress user row via get_user_by('login', $username) — which now selects the real Administrator's row — and calls wp_set_password() against that Administrator's user ID; because the user_level != 10 guard only suppresses PilotPress's own cookie issuance rather than returning a WP_Error to core, WordPress proceeds to validate the newly-synchronized password and issues a full Administrator authentication cookie to the attacker. This makes it possible for authenticated attackers with Subscriber-level access and above — specifically any PilotPress member holding a valid ONTRAPORT contact and the Customer Center nonce — to fully take over an Administrator account.

Attack profile

How easy it is to exploit

Attack vector
Network
Complexity
Low
Privileges needed
Low
User interaction
None

What an attacker can affect

Confidentiality
High
Integrity
High
Availability
High

Exploit likelihood

0.36%Unchanged since Oct 16, 2026
90%50%10%1%

What each source reports

CVE List Score used 8.8

PilotPress <= 2.0.43 - Authenticated (Subscriber+) Privilege Escalation via Account Takeover via 'username' Parameter

The PilotPress plugin for WordPress is vulnerable to Privilege Escalation via Account Takeover in all versions up to, and including, 2.0.43. The vulnerability exists because the update_cc_details() AJAX handler forwards an attacker-supplied username parameter to ONTRAPORT via api_call('update_cc_details', ...) before performing the local username_exists() collision check, and aborts without rolling back the remote rename when a collision is detected — leaving the remote ONTRAPORT contact renamed to an existing WordPress Administrator's login. On a subsequent login attempt, user_login() (hooked to wp_authenticate) authenticates against ONTRAPORT using the renamed login and the attacker's own password, resolves the local WordPress user row via get_user_by('login', $username) — which now selects the real Administrator's row — and calls wp_set_password() against that Administrator's user ID; because the user_level != 10 guard only suppresses PilotPress's own cookie issuance rather than returning a WP_Error to core, WordPress proceeds to validate the newly-synchronized password and issues a full Administrator authentication cookie to the attacker. This makes it possible for authenticated attackers with Subscriber-level access and above — specifically any PilotPress member holding a valid ONTRAPORT contact and the Customer Center nonce — to fully take over an Administrator account.

Record
CVE-2026-85659
CVSS 3.1
8.8 HighCVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
Weakness
CWE-269
Updated
2026-11-02
EUVDEUVD-2026-102680 8.8

The PilotPress plugin for WordPress is vulnerable to Privilege Escalation via Account Takeover in all versions up to, and including, 2.0.43. The vulnerability exists because the update_cc_details() AJAX handler forwards an attacker-supplied username parameter to ONTRAPORT via api_call('update_cc_details', ...) before performing the local username_exists() collision check, and aborts without rolling back the remote rename when a collision is detected — leaving the remote ONTRAPORT contact renamed to an existing WordPress Administrator's login. On a subsequent login attempt, user_login() (hooked to wp_authenticate) authenticates against ONTRAPORT using the renamed login and the attacker's own password, resolves the local WordPress user row via get_user_by('login', $username) — which now selects the real Administrator's row — and calls wp_set_password() against that Administrator's user ID; because the user_level != 10 guard only suppresses PilotPress's own cookie issuance rather than returning a WP_Error to core, WordPress proceeds to validate the newly-synchronized password and issues a full Administrator authentication cookie to the attacker. This makes it possible for authenticated attackers with Subscriber-level access and above — specifically any PilotPress member holding a valid ONTRAPORT contact and the Customer Center nonce — to fully take over an Administrator account.

Record
EUVD-2026-102680
CVSS 3.1
8.8 HighCVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
Updated
2026-11-02
GitHub AdvisoriesGHSA-ph8g-mcqh-5p98 8.8

The PilotPress plugin for WordPress is vulnerable to Privilege Escalation via Account Takeover in...

The PilotPress plugin for WordPress is vulnerable to Privilege Escalation via Account Takeover in all versions up to, and including, 2.0.43. The vulnerability exists because the update_cc_details() AJAX handler forwards an attacker-supplied username parameter to ONTRAPORT via api_call('update_cc_details', ...) before performing the local username_exists() collision check, and aborts without rolling back the remote rename when a collision is detected — leaving the remote ONTRAPORT contact renamed to an existing WordPress Administrator's login. On a subsequent login attempt, user_login() (hooked to wp_authenticate) authenticates against ONTRAPORT using the renamed login and the attacker's own password, resolves the local WordPress user row via get_user_by('login', $username) — which now selects the real Administrator's row — and calls wp_set_password() against that Administrator's user ID; because the user_level != 10 guard only suppresses PilotPress's own cookie issuance rather than returning a WP_Error to core, WordPress proceeds to validate the newly-synchronized password and issues a full Administrator authentication cookie to the attacker. This makes it possible for authenticated attackers with Subscriber-level access and above — specifically any PilotPress member holding a valid ONTRAPORT contact and the Customer Center nonce — to fully take over an Administrator account.

Record
GHSA-ph8g-mcqh-5p98
CVSS 3.1
8.8 HighCVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
Weakness
CWE-269
Updated
2026-11-02
NVD 8.8

The PilotPress plugin for WordPress is vulnerable to Privilege Escalation via Account Takeover in all versions up to, and including, 2.0.43. The vulnerability exists because the update_cc_details() AJAX handler forwards an attacker-supplied username parameter to ONTRAPORT via api_call('update_cc_details', ...) before performing the local username_exists() collision check, and aborts without rolling back the remote rename when a collision is detected — leaving the remote ONTRAPORT contact renamed to an existing WordPress Administrator's login. On a subsequent login attempt, user_login() (hooked to wp_authenticate) authenticates against ONTRAPORT using the renamed login and the attacker's own password, resolves the local WordPress user row via get_user_by('login', $username) — which now selects the real Administrator's row — and calls wp_set_password() against that Administrator's user ID; because the user_level != 10 guard only suppresses PilotPress's own cookie issuance rather than returning a WP_Error to core, WordPress proceeds to validate the newly-synchronized password and issues a full Administrator authentication cookie to the attacker. This makes it possible for authenticated attackers with Subscriber-level access and above — specifically any PilotPress member holding a valid ONTRAPORT contact and the Customer Center nonce — to fully take over an Administrator account.

Record
CVE-2026-85659
CVSS 3.1
8.8 HighCVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
Weakness
CWE-269
Updated
2026-11-02

Affected products

History

History
RecordedChangedSources
first indexedCVE List, EUVD, GitHub Advisories, NVD

Dates are when Every CVE recorded each change. Upstream dates may differ.

In short

CVE-2026-85659 is a high vulnerability (CVSS 8.8) in Ontraport Pilotpress, published October 16, 2026. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 0.36%, the 29th percentile. No source names a fixed version.

References

MoveEnter Open