Read the docs
TI-2026-75198 Aliases CVE-2026-85659GHSA-ph8g-mcqh-5p98

Privilege escalation in PilotPress lets members take over admin accounts

Priority MEDIUM 40CWE-269Published · Updated

Key facts

Attack vector
Network
Privileges required
Low
User interaction
None
Attack complexity
Low
Impact type
Privilege escalation
Confidentiality · integrity · availability
High · High · High
Fix status
No fix listed

Attack profile from CVSS 3.1 · CNA. Fix status from CNA. Impact type from CWE-269.

Summary

The PilotPress plugin for WordPress is affected through 2.0.43. The update_cc_details() AJAX handler renames the remote ONTRAPORT contact to an attacker-supplied login before checking for a local username collision, and it does not roll back that rename (CWE-269). An authenticated attacker with Subscriber-level access or higher can then log in and receive an Administrator authentication cookie, taking over an existing Administrator account.

Written with Claude Haiku 5.5 from the sources below · 2026-10-28

Description from the CNA

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.

Why it matters now

Exploitation None reported CISA SSVC · not in CISA KEV
EPSS 0.00356 29th percentileScored 2026-11-07
Fix No fix listed No fixed version in the sources yet

SSVC decision points

CISA ADP · SSVC 2.0.3

Exploitation
None
Automatable
No
Technical impact
Total

The decision (Track, Attend, Act) also depends on your mission and well-being impact; see CISA's SSVC guide.

Affected products

VendorProductAffected versionsFixed inStatusSource
ONTRAPORTPilotPressup to 2.0.43—No fix listedCNA
  • PilotPress VendorONTRAPORT Affected up to 2.0.43 Fixed in — No fix listed CNA

Remediation

The sources list no fixed version for PilotPress.

Written with Claude Haiku 5.5 from the sources below · 2026-10-28

Timeline

  1. 2026-10-16 Threatist record created from CVE-2026-85659
  2. 2026-10-16 CISA SSVC decision points changed
  3. 2026-10-16 Priority changed: MEDIUM → LOW
  4. 2026-10-16 Priority changed: LOW → MEDIUM
  5. 2026-10-16 Alias added: GHSA-ph8g-mcqh-5p98

References

  • TI-2017-14735 SQL injection in ONTRAPORT Membership Simplified CVSS 3.0CRITICAL 9.8
  • TI-2017-14734 Vulnerability in wordpress plugin Membership Simplified v1.58, The code in… CVSS 3.0CRITICAL 9.8
  • TI-2024-15565 WordPress PilotPress plugin <= 2.0.30 - Broken Access Control vulnerability CVSS 3.1HIGH 8.8
  • TI-2025-36043 WordPress PilotPress Plugin <= 2.0.36 - Cross Site Scripting (XSS) Vulnerability CVSS 3.1MEDIUM 6.5
  • TI-2025-36026 WordPress PilotPress Plugin <= 2.0.36 - Broken Access Control Vulnerability CVSS 3.1MEDIUM 4.3

Sources