Wishlist Member X <= 3.34.1 — Unauthenticated Account Takeover via 'mergewith' Parameter
CVE-2026-12949Published · Updated Action summary
Affected: ≤3.34.1Update to 3.34.2 or newer
All remediation steps- Severity
- Critical9.8
- CVSS
- 9.8CVSS 3.1 · CNA (Wordfence)
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:HWhat does this vector mean?
AV:NAttack vector- Network
AC:LAttack complexity- Low
PR:NPrivileges required- None
UI:NUser interaction- None
S:UScope- Unchanged
C:HConfidentiality- High
I:HIntegrity- High
A:HAvailability- High
- Required access
- No account needed
- Exploit prediction (EPSS)
- No score
- CISA KEV
- Not listed
On this page8
Am I affected?
Wishlist Member wishlist-member-x
- Affected≤ 3.34.1
- Patched in3.34.2
Update to 3.34.2 or newer.
You are affected if you run ≤ 3.34.1. Version 3.34.2 and later are not affected by this issue.
- Check your version: in wp-admin go to Plugins → Installed Plugins and read the version under Wishlist Member.
- No admin access? Run a passive check of your site. It reads public files only.
- No account is needed to exploit this. Treat any exposed site on an affected version as at risk.
What to do
- Update to version 3.34.2, or a newer patched version
- Rotate administrator passwords and application secrets if the site ran a vulnerable version while publicly reachable.
- Watch Wishlist Member to get an email when the next vulnerability is published.
Advisory
Source description from Wordfence Intelligence, credited to bashu.
The Wishlist Member plugin for WordPress is vulnerable to Account Takeover via Insufficient Verification of Data Authenticity in versions up to and including 3.34.1. This is due to the wpm_register() function validating the registration cookie only against the GET reg parameter while accepting the POST mergewith and POST wpm_id parameters without verifying that the mergewith user ID references a temporary or incomplete registrant that is bound to the current registration transaction. This makes it possible for unauthenticated attackers to take over any existing WordPress account — including administrator accounts — by supplying an arbitrary user's numeric ID as the mergewith value, which causes wp_update_user() to overwrite the target account's username (additionally written via a direct $wpdb UPDATE), password, email address, first name, and last name with attacker-controlled values, while WordPress password and email change notification emails are explicitly suppressed. When wpm_id references a non-existent membership level, no role key is added to the update payload, causing wp_update_user() to preserve the target user's existing role — including administrator — making full privilege escalation a direct consequence of the takeover.
Exploits & references
Proof-of-concept & detection
No public proof-of-concept or detection template is known for this vulnerability.
Advisories & patches
- Advisorywordfence.com
Related CVEs
More in Wishlist Member
All 16| Severity | Vulnerability | CVE | Published |
|---|---|---|---|
| High8.8 | Missing Authorization to Authenticated (Subscriber+) API Secret Key Disclosure and Privilege Escalation via 'wlm3_export_settings' AJAX Action ≤3.30.1Update to 3.31.0 | CVE-2026-6895 | |
| High8.8 | Missing Authorization to Authenticated (Subscriber+) Arbitrary Plugin Options Update via 'wishlistmember_team_accounts_save_settings' AJAX action ≤3.32.0Update to 3.32.1 | CVE-2026-6897 | |
| High8.8 | Missing Authorization to Authenticated (Subscriber+) Generate API Secret Key via 'wlm3_generate_api_key' AJAX action ≤3.30.1Update to 3.31.0 | CVE-2026-6898 | |
| High8.8 | Missing Authorization to Authenticated (Subscriber+) API Secret Key Disclosure and Privilege Escalation via 'wlm3_get_screen' AJAX action ≤3.30.1Update to 3.31.0 | CVE-2026-6419 | |
| High8.8 | Authenticated (Subscriber+) Arbitrary File Upload ≤3.32.0Update to 3.33.0 | CVE-2026-25446 |
- High8.8Missing Authorization to Authenticated (Subscriber+) API Secret Key Disclosure and Privilege Escalation via 'wlm3_export_settings' AJAX Action
≤3.30.1Update to 3.31.0
- High8.8Missing Authorization to Authenticated (Subscriber+) Arbitrary Plugin Options Update via 'wishlistmember_team_accounts_save_settings' AJAX action
≤3.32.0Update to 3.32.1
- High8.8Missing Authorization to Authenticated (Subscriber+) Generate API Secret Key via 'wlm3_generate_api_key' AJAX action
≤3.30.1Update to 3.31.0
- High8.8Missing Authorization to Authenticated (Subscriber+) API Secret Key Disclosure and Privilege Escalation via 'wlm3_get_screen' AJAX action
≤3.30.1Update to 3.31.0
- High8.8Authenticated (Subscriber+) Arbitrary File Upload
≤3.32.0Update to 3.33.0
Timeline
CVE published
Severity critical, CVSS 9.8
Record last updated
Sources & licenses
Wordfence record- Vulnerability data
- Wordfence Intelligence. Copyright 2012-2026 Defiant Inc. Licensed under the CC BY-SA 4.0.
- CVE® identifiers
- Copyright 1999-2026 The MITRE Corporation. Used under the CVE Program. CVE® is a registered trademark of The MITRE Corporation.
- CVSS / CWE
- National Vulnerability Database (NVD), shown unmodified. This product uses the NVD API but is not endorsed or certified by the NVD.
- VulnCrest content
- Summary, remediation guidance and page layout © VulnCrest. Not sourced from NVD.
