Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
ReconAuthenticate as PilotPress subscriber
-
DeliveryCall update_cc_details() with admin username
-
ExploitRemote ONTRAPORT contact renamed to admin login
-
InstallCollision check aborts without rollback
-
C2Re-login triggers wp_authenticate hook
-
Executewp_set_password() overwrites admin credentials
-
ImpactReceive full Administrator session cookie
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A06:2025 - Insecure Design
ASVS 5.0
V8 - Authorization Least privilege enforcement
MITRE ATT&CK
1 technique across 1 tactic: Privilege Escalation The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Exploitation requires an authenticated attacker holding at least a Subscriber-level PilotPress membership that maps to a valid ONTRAPORT contact, plus possession of the Customer Center nonce needed to call the update_cc_details() AJAX handler. The affected PilotPress plugin (version ≤2.0.43) must be active and configured for ONTRAPORT integration with the Customer Center feature in use. The attacker must know a target Administrator's exact WordPress login to supply as the username parameter. Limiting factors: this is not a pre-auth flaw - PR:L means a pre-existing membership account is mandatory, which constrains the attacker pool to sites that allow such registrations; UI:N means no victim interaction is needed, and the flaw triggers against the plugin's default handling once membership is obtained. |
| Impact | This is a genuine high-priority vulnerability, not a high-CVSS-but-low-impact artifact. The CVSS 3.1 vector (AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H = 8.8) is internally consistent with the description: a network-reachable AJAX handler, low attacker privileges (any Subscriber-level PilotPress member), no user interaction, and full compromise of an Administrator account yielding complete confidentiality/integrity/availability impact. The low-complexity rating is credible because the attack is a deterministic logic flaw (missing rollback plus an authentication guard that suppresses cookies rather than returning WP_Error) rather than a race or memory-corruption requiring special conditions. Counterbalancing signals: no EPSS score was provided, the CVE is NOT in CISA KEV, and no public proof-of-concept is referenced, so there is no evidence of active exploitation or weaponization yet. The practical risk is therefore 'realistic and serious but not yet observed in the wild' - the technical path to full admin takeover is clearly documented by Wordfence and the vulnerable source lines are publicly linked, which lowers the barrier to developing an exploit even though none is confirmed public. Prioritize patching, but note the exploitation requires a pre-existing authenticated PilotPress membership, which narrows the attacker population to users who already have a valid ONTRAPORT contact on the target site. |
| Exploit ScenarioDerived | An attacker registers or already holds a low-privilege PilotPress membership (Subscriber-level) with a valid ONTRAPORT contact and obtains the Customer Center nonce. They invoke the update_cc_details() AJAX handler supplying an existing WordPress Administrator's login as the username, which renames their remote ONTRAPORT contact to that admin login even though the local collision check aborts without rolling back. On their next login using that admin username and their own password, PilotPress's wp_authenticate hook resolves the Administrator's user row, resets that account's password, and WordPress issues the attacker a full Administrator session cookie. No public exploit code is referenced, but the vulnerable source lines are publicly linked. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 16, 2026
Authenticated attackers with Subscriber-level or higher PilotPress membership on WordPress sites can escalate to full Administrator privileges by exploiting a flawed ONTRAPORT synchronization routine in PilotPress versions up to and including 2.0.43. The defect allows an attacker to rename a remote ONTRAPORT contact to an existing Administrator's WordPress login, then leverage the plugin's authentication hook to cause WordPress core to issue an Administrator authentication cookie. This is a genuine high-priority vulnerability (CVSS 8.8), requiring a valid ONTRAPORT contact and the Customer Center nonce, but no victim interaction. No public exploit code was identified at time of analysis.
RemediationAI
Apply the upstream fix by updating the PilotPress plugin to the version that includes changeset 3737004 from the WordPress plugin repository; the exact patched release version is not specified in the provided data, so verify the latest available version. If immediate patching is not possible, disable the Customer Center feature in PilotPress settings to remove the vulnerable update_cc_details() AJAX handler, though this will disable member self-service functionality. Alternatively, remove the AJAX action programmatically via a small mu-plugin that calls remove_action('wp_ajax_update_cc_details', ...) and remove_action('wp_ajax_nopriv_update_cc_details', ...) if the handler is registered for unauthenticated users. As a compensating control, restrict membership registration to trusted users or temporarily disable new user registrations to reduce the attacker pool, but note that existing Subscriber-level accounts remain a risk. Monitor ONTRAPORT contact rename events and WordPress password changes for Administrator accounts as detection measures. Consult the Wordfence advisory (https://www.wordfence.com/threat-intel/vulnerabilities/id/ceee48dd-72a7-49c3-90d5-7af1a30f9ecb?source=cve) and the Trac changeset (https://plugins.trac.wordpress.org/changeset/3737004) for further guidance.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
The PilotPress plugin bridges WordPress with the ONTRAPORT CRM/marketing platform. The vulnerability resides in the update_cc_details() AJAX handler, which forwards an attacker-supplied 'username' parameter to the ONTRAPORT API via api_call('update_cc_details', ...) before performing a local username_exists() check. When a collision is detected, the handler aborts but does not roll back the remote rename, leaving the ONTRAPORT contact named after an existing WordPress Administrator. Subsequently, the user_login() function hooked to wp_authenticate authenticates the attacker against ONTRAPORT using the renamed login and the attacker's own password. It then resolves the local WordPress user row via get_user_by('login', $username), which now returns the real Administrator's row, and calls wp_set_password() against that Administrator's user ID. The user_level != 10 guard only suppresses PilotPress's own cookie issuance rather than returning a WP_Error to core, so WordPress proceeds to validate the newly-synchronized password and issues a full Administrator authentication cookie to the attacker. The root cause is CWE-269 (Improper Privilege Management), with a failure to enforce proper privilege boundaries during remote-to-local identity synchronization.
Know when Pilotpress gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
Remote AJAX handler (AV:N), deterministic logic flaw (AC:L), requires an existing low-privilege member so PR:L not PR:N, no interaction (UI:N), full admin takeover gives C/I/A:H.
Primary rating from Vendor (Wordfence).
CVSS VectorVendor: Wordfence
DescriptionCVE.org
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.
Executive ViewAI
A high-severity flaw in the PilotPress WordPress plugin (versions up to and including 2.0.43) can allow a low-privileged user to gain full Administrator control of an affected website. For organizations running WordPress with PilotPress, this could lead to complete site compromise, unauthorized access to sensitive data, and abuse of administrative functions. Leadership should prioritize remediation because affected sites may be used to exfiltrate customer information, inject malicious content, or pivot into connected systems; no public exploit identified at time of analysis.
No vendor-released patch identified at time of analysis; interim mitigations include deactivating or removing the PilotPress plugin, disabling ONTRAPORT synchronization and Customer Center nonce functionality, restricting Subscriber-level account provisioning, auditing and hardening all Administrator accounts, and deploying WAF rules to detect or block privilege escalation attempts.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Privilege escalation occurs when an attacker leverages flaws in access control mechanisms to gain permissions beyond what they were originally granted.
EUVD-2026-102680
GHSA-ph8g-mcqh-5p98
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB