CVE-2026-6419
Official description Straight from the sourceThe vendor's or NVD's own wording, published unedited. Authoritative, but often terse — it says what broke, rarely what to do.
NVD · uneditedThe WishList Member plugin for WordPress is vulnerable to Privilege Escalation via Missing Authorization in versions up to and including 3.30.1. This is due to the missing capability and nonce check in the ajax_get_screen() function. This makes it possible for authenticated attackers, with Subscriber-level access and above, to supply an arbitrary admin screen identifier via the data[url] parameter, causing the plugin to load and execute the administrative API configuration template without authorization. The rendered HTML, which contains the plugin's plaintext REST API Secret Key, is returned directly to the attacker in the AJAX JSON response. An attacker who obtains this key can authenticate to the WishList Member API, create a new membership level assigned the administrator WordPress role, and register an arbitrary administrator-level user account, resulting in complete site takeover.
Technical summary Written by usOur analysis, written from the advisory, the CVSS vector and the affected-version data. It adds context the advisory leaves out, and never invents facts that are not in the source.
dbcve analysis · high confidenceThe WishList Member plugin for WordPress fails to enforce authorization checks in its ajax_get_screen() function, allowing any authenticated user with Subscriber-level access or higher to trigger the loading of administrative API configuration templates by supplying an arbitrary screen identifier via the data[url] parameter. This returns HTML containing the plaintext REST API Secret Key in the AJAX response, which attackers can then use to authenticate to the WishList Member API, create administrator-role membership levels, and register new administrator accounts for complete site takeover.
Verify against the referenced sources before acting — the references below are authoritative for this CVE, this summary is not.
CVSS breakdown How the score is builtThe industry scoring standard. It rates how the flaw is reached, what it takes to exploit, and what an attacker gains — the score is derived from those, not the other way round.
From the vector- Attack vector
- Network
- Complexity
- Low
- Privileges
- Low
- User interaction
- None
- Scope
- Unchanged
- Confidentiality
- High
- Integrity
- High
- Availability
- High
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
Am I affected? How to checkSteps we derive from the advisory and the affected-version data, so you can decide whether this CVE reaches your setup. They are a guide, not a scan — your own configuration is the authority.
dbcve checksWork through these to decide whether this CVE applies to you.
-
Verify WishList Member plugin installationIn WordPress admin, go to Plugins > Installed Plugins and locate WishList Member, or check the plugin files in wp-content/plugins/wishlist-member for a version fileAffected if WishList Member plugin is installed and the version is older than the fixed release that added proper capability and nonce validation
-
Confirm user registration is enabledNavigate to WordPress Settings > General and check 'Membership: Anyone can register' is checked, then verify the default role is set to Subscriber or a role with equivalent low privilegesAffected if User registration is enabled with Subscriber or similar low-privilege default role, allowing attackers to obtain an authenticated account
-
Identify existing subscriber-level accountsGo to WordPress Users panel and review accounts with Subscriber role, or query the wp_users and wp_usermeta tables directly for users with wp_capabilities meta value containing 'subscriber'Affected if Any Subscriber-level user accounts exist in the system that were not intentionally created by administrators
-
Test ajax_get_screen endpoint for authorization bypassSend a POST request to /wp-admin/admin-ajax.php with action=wlm_ajax_get_screen and data[url] pointing to the REST API settings (such as 'resotw_') and inspect the response for exposed API Secret Keys in plaintextAffected if The AJAX response returns plaintext API Secret Keys or sensitive configuration data without requiring admin-level permissions
-
Review API key exposure in plugin settingsAccess WishList Member > License Settings or REST API settings panel as an administrator and document any API keys present, then compare against logs or network captures for unauthorized access patternsAffected if API Secret Keys are visible in the plugin admin panel and there is evidence of unauthorized access to this configuration screen
Your environment is affected if WishList Member is installed with a vulnerable version and either user registration is enabled or any subscriber-level accounts exist, as the ajax_get_screen function can be exploited to expose API Secret Keys without proper authorization.
Generated from the published advisory. Verify against your own configuration.
Remediation Closing itWhat it takes to close this. Where a vendor fix exists we point at it; where none exists we say so plainly, and can build one. Effort estimates are scoped from the advisory, not from your codebase.
dbcve · scopedImmediately update WishList Member to the latest version which includes proper authorization checks, and rotate the exposed REST API Secret Key to prevent further exploitation.
Latest version of WishList Member plugin (version higher than 3.30.1)
- 1. Check the current version of the WishList Member plugin installed on the WordPress site
- 2. Navigate to Plugins > Installed Plugins in the WordPress admin dashboard
- 3. If the installed version is 3.30.1 or lower, update the plugin to the latest available version
- 4. After updating, verify that the ajax_get_screen() function now includes proper capability checks and nonce verification
- 5. As a precautionary security measure after remediation, consider rotating the REST API Secret Key via WishList Member > API/Integration Settings
Generated from the published advisory — verify against the referenced sources before acting.
- Consultation4.0 h
- Implementation4.0 h
- Testing3.0 h
- Review / QA2.0 h
An estimate, not a bill — we confirm scope with you before any work starts. Need it this week? Rush from $3,728.
Scan for this in your stack
Free · runs locallyCheck whether your project pulls in CVE-2026-6419 — or any other known-vulnerable package — straight from your lock files. Free and open source; it runs locally and uploads nothing.
References Go to the primary sourcePrimary sources — vendor advisories, patches and trackers. Where our summary and a reference disagree, the reference wins.
Primary sourcesPractitioner notes
ContributedPeer-ranked notes from engineers who’ve handled CVE-2026-6419 in production — separate from our analysis above.
The advisory tells you what broke. It rarely tells you what actually worked. If you’ve dealt with this one, that detail is what the next engineer is searching for.
- The version that genuinely resolved it — not the one the vendor claimed
- A config change or rule that shut the vector down
- A gotcha in the upgrade path that cost you an afternoon
No notes yet
Be the first to add a field note for this CVE — a mitigation you’ve verified, a version caveat, or a link to a working fix. Sign in above to contribute.
A place for practitioners to share what actually worked: a mitigation you’ve tested, a configuration change, a version- or environment-specific caveat, or a link to a verified patch. The most useful notes rise to the top as peers upvote them, so the signal stays high.
- Verified mitigations, workarounds, and config changes
- Version or environment caveats, and links to real fixes
- No weaponised exploit code, or anything meant to cause harm
- No spam, self-promotion, credentials, or personal data